ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 99
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
«Объектно-ориентированное программирование – это набор правил программирования, в котором основной концепцией является понятие объекта. Основные принципы ООП: Абстракция, Инкапсуляция. Наследование. Полиморфизм.Плюсы: Гибкость (можно изменять, добавлять), Модульность(легко разбираться в коде), Безопасность (из-за инкапсуляции код недоступен извне).Инкапсуляция – сокрытие полей и реализации (методов) внутри объекта с целью защиты данных от внешнего, изменения со стороны других объектов. Пример, я могу смотреть телевизор, но не знать, как он сделан и как функционирует.Инкапсуляция нужна для : Чтобы код оставался чистым и организованным. Для лучшего контроля доступа к инкапсулированным членам. Чтобы лучше понимать код.Модификаторы доступа для регулирования доступности данных и методов. Геттеры (получают значение поля) и Сеттеры (устанавливают значение) используются для организации доступа к закрытым данным.Полиморфизм - принцип Одну задачу можно решить разными способами (Пример: разные методы или правила). Виды: статический и динамический(Пример: Ссылочная переменная суперкласса может ссылаться на объект подкласса)Наследование – принцип, позволяет описывать новые классы на основе уже существующих. Наследование делает код более чистым счет устранения дублирования кода. Пример: новая марка телефона включает функции предыдущих. Что такое класс? Объект?Класс – шаблон с набором общих действий. А объект конкретный экземпляр класса.В правой части выражения происходит выделение памяти для нового экземпляра класса Cat и инициализируется экземпляр. Оператор присваивания присваивает переменной ссылку на только что созданный объект. Как передаются объекты в метод?Создаётся экземпляр класса и передаются в метод в качестве параметра. Путём передачи копии ссылки на область где находится объект.Что такое переопределение метода в Java? Возможностей позволяющая подклассу обеспечивать специфическую реализацию метода, который уже существует в суперклассе. Всё общее – кроме внутренней реализации. Спереди пишется @ Овверрайд.Что такое перегрузка метода в Java?
Использование методов с одним именем, но с разными типами и/или количеством параметров. При вызове метода в зависимости от типа и количества параметров система выберет именно ту версию, которая наиболее подходит. Если метод с одним и тем же количеством и типом параметров определен несколько раз, то такая программа не скомпилируется.Что такое нативные методы, их плюсы и минусы? Это методы написанные на других языках. Обозначаются native.Плюсы: метод уже написан, быстрая скорость работы, Минусы: не безопасно, может быть не переносим Java языкомКакие модификаторы доступа могут быть у класса?Паблик, и по умолчанию (дефолт)А всего существует четыре доступа:
Если поле статично, значит оно принадлежит классу, если метод статичный — он принадлежит классу.Статический метод нельзя переопределить: он принадлежит классу и не наследуется, но в то же время его можно перегрузить.Могут ли нестатические методы перегрузить статические?Да. В итоге получится два разных метода. Статический будет принадлежать классу и будет доступен через его имя, а нестатический будет принадлежать конкретному объекту и доступен через вызов метода этого объекта.Пакет (package – ключевое слово) в Java — это способ объединить группу классов, интерфейсов. Имя пишут с маленькой буквы, чтобы не путать с классомЧто такое конструкторы? Конструктор по-умолчанию?Конструктор — специальный метод, который вызывается при создании нового объекта и инициализирует его в момент создания. Имя конструктора должно совпадать с именем класса. Конструктор не должен иметь возвращаемого типа.Конструктор по умолчанию — не принимает никаких параметров, если мы не создаём сами то он будет создан компилятором, но мы его не увидим.Расскажи, что такое this и super? Когда мы обязаны использовать this и super?this и super - ключевые слова, используются в конструкторах и методах, Главное отличие this и super в том, что this представляет текущий экземпляр класса, в то время как super - текущий экземпляр родительского класса.this а также super ключевые слова связаны с экземпляром объекта, мы не можем использовать их внутри статического блока или статического метода.Класс Object и все методы: главный класс фактически все классы наследуются от класса Object.Метод toString служит для получения представления этого объекта в виде строки. Метод hashCode позволяет задать некоторое числовое значение, например, можно для сравнения объектов.Метод getClass позволяет получить тип объекта.Метод equals проверяет два объекта на равенство. Сравнивает по значению.Метод clone создаёт копию объекта.МетодfinalizeЗачемнуженметод finalize? Для автоматического освобождения системных ресурсов, занимаемых объектом.
Из-за чего происходят коллизии? Ситуация, когда у разных объектов одинаковые хеш-коды называется — коллизией. В чём разница между instanceOf и getClass?getClass(), и оператор instanceof в Java могут использоваться в методе equals() для проверки типа объекта, который мы проверяем на равенство. Ключевое различие между ними заключается в том, что getClass() возвращает true если объект на самом деле является экземпляром указанного класса, но оператор instanceof может возвращать true, даже если объект является подклассом указанного класса или интерфейса в Java.Перечислите методы именно класса Enum?
Абстрактные классы призваны предоставлять базовый функционал для классов-наследников. А производные классы уже реализуют этот функционал.Да, АК всегда имеет конструктор. Если вы не определите свой собственный конструктор, компилятор выдаст абстрактному классу конструктор по умолчанию.
Использование методов с одним именем, но с разными типами и/или количеством параметров. При вызове метода в зависимости от типа и количества параметров система выберет именно ту версию, которая наиболее подходит. Если метод с одним и тем же количеством и типом параметров определен несколько раз, то такая программа не скомпилируется.Что такое нативные методы, их плюсы и минусы? Это методы написанные на других языках. Обозначаются native.Плюсы: метод уже написан, быстрая скорость работы, Минусы: не безопасно, может быть не переносим Java языкомКакие модификаторы доступа могут быть у класса?Паблик, и по умолчанию (дефолт)А всего существует четыре доступа:
-
Видимый в пакете (стоит по умолчанию и модификатор не требуются). -
Видимый только для класса (private). -
Видимый для всех (public). -
Видимый для пакета и всех подклассов (protected).
Если поле статично, значит оно принадлежит классу, если метод статичный — он принадлежит классу.Статический метод нельзя переопределить: он принадлежит классу и не наследуется, но в то же время его можно перегрузить.Могут ли нестатические методы перегрузить статические?Да. В итоге получится два разных метода. Статический будет принадлежать классу и будет доступен через его имя, а нестатический будет принадлежать конкретному объекту и доступен через вызов метода этого объекта.Пакет (package – ключевое слово) в Java — это способ объединить группу классов, интерфейсов. Имя пишут с маленькой буквы, чтобы не путать с классомЧто такое конструкторы? Конструктор по-умолчанию?Конструктор — специальный метод, который вызывается при создании нового объекта и инициализирует его в момент создания. Имя конструктора должно совпадать с именем класса. Конструктор не должен иметь возвращаемого типа.Конструктор по умолчанию — не принимает никаких параметров, если мы не создаём сами то он будет создан компилятором, но мы его не увидим.Расскажи, что такое this и super? Когда мы обязаны использовать this и super?this и super - ключевые слова, используются в конструкторах и методах, Главное отличие this и super в том, что this представляет текущий экземпляр класса, в то время как super - текущий экземпляр родительского класса.this а также super ключевые слова связаны с экземпляром объекта, мы не можем использовать их внутри статического блока или статического метода.Класс Object и все методы: главный класс фактически все классы наследуются от класса Object.Метод toString служит для получения представления этого объекта в виде строки. Метод hashCode позволяет задать некоторое числовое значение, например, можно для сравнения объектов.Метод getClass позволяет получить тип объекта.Метод equals проверяет два объекта на равенство. Сравнивает по значению.Метод clone создаёт копию объекта.МетодfinalizeЗачемнуженметод finalize? Для автоматического освобождения системных ресурсов, занимаемых объектом.
Из-за чего происходят коллизии? Ситуация, когда у разных объектов одинаковые хеш-коды называется — коллизией. В чём разница между instanceOf и getClass?getClass(), и оператор instanceof в Java могут использоваться в методе equals() для проверки типа объекта, который мы проверяем на равенство. Ключевое различие между ними заключается в том, что getClass() возвращает true если объект на самом деле является экземпляром указанного класса, но оператор instanceof может возвращать true, даже если объект является подклассом указанного класса или интерфейса в Java.Перечислите методы именно класса Enum?
-
clone() – вызов метода предотвращает клонирование перечислений; -
getDeclaringClass() – возвращает тип перечисления. -
hashCode() – возвращает хэш-код объекта; -
name() – возвращает имя именуемой константы; -
ordinal() – возвращает позицию константы в списке констант перечисления;
Абстрактные классы призваны предоставлять базовый функционал для классов-наследников. А производные классы уже реализуют этот функционал.Да, АК всегда имеет конструктор. Если вы не определите свой собственный конструктор, компилятор выдаст абстрактному классу конструктор по умолчанию.
-
Чтобы создать абстрактный класс, перед словом "class" нужно дописать модификатор "abstract" -
Вы не можете создать объект абстрактного класса -
В абстрактном классе можно создавать абстрактные методы, а можно и "обычные" -
Абстрактные методы могут быть только в абстрактном классе!
-
АК связывает близкие по смыслу классы, а Интерфейс любые, в т.ч. статические. -
Интерфейс описывает поведение, а АК и поведение и состояние (в виде полей). -
Интерфейс имеют только финал статик поля(константы), а АК любые поля. -
Класс может реализовать много Интерфейсов, а множественное наследование классов запрещено. -
Интерфейс не может содержать конструктора а АК содержит. -
Интерфейс может быть реализован (implements) и АК может быть только расширен (extends). -
В интерфейсах могут быть Абстр.методы, дефолт и статик методы с Джава 8, могут быть приват методы (только с реализацией) с Джава 9.
-
является ли класс интерфейсом, массивом или примитивным типом; -
каков супер класс объекта; -
каково имя класса; -
какие в нем конструкторы, поля, методы и вложенные классы.