что такое методы в ооп какие бывают виды (статические асинхронные) и как работает перегрузка
Методы в объектно-ориентированном программировании (ООП) - это функции, которые определены внутри класса и могут выполнять операции с данными этого класса. Главное отличие метода от функции - метод связан с классом и оперирует данными, состоянием, класса. Если нет состояния, то и смысла в методе, равно как и классе, нет.
В ООП методы могут быть разделены на несколько типов, в зависимости от их поведения и особенностей:
Экземлярные методы - обычные, стандартные методы, которые принадлежат конкретному экземлпяру и работают с состоянием, данными, этого экземпляра.
Методы класса - методы принадлежащие уже всему классу, и работающие с данными класса. Важно помнить, что все экземпляры шерят между собой состояние класса.
Статические методы - в сущности это обычные функции, методы, которые не работают с данными экземпляра, но мы "положили" их в класс, потому что так удобнее.
Асинхронные методы - такого деления, относительно ООП, честно говоря, не существует. Но в целом, асинхронные методы или функции это операции, которые выполняются вне основного потока исполнения. Например скачивание картинок на сайте "на фоне", пока вы листаете его это будет примером асинхроности. Любой метод выше (экземпляра, класса, статический) может быть асинхроным.
Что касается второго вопроса, то перегрузка методов в ООП - это механизм, позволяющий определять несколько методов с одинаковым именем, но различающихся по количеству или типу передаваемых параметров.
Когда вызывается перегруженный метод, компилятор определяет, какой именно метод должен быть вызван основываясь на типе или количестве аргументов. Перегрузка характера для статически типизированных языков, и позволяет например использовать один и тот же оператор +
чтобы складывать числа или чтобы собирать строку.