OOP

Primary tabs

Igor Bondarenko's picture

OOP

Subjects: 

Bookmark to learn: Login to use bookmarks.

Bookmark to learn: Login to use bookmarks.

Add to collection ... add OOP to your collections:

Help using Flashcards ...just like in real life ;)

  1. Look at the card, do you know this one? Click to flip the card and check yourself.
  2. Mark card Right or Wrong, this card will be removed from the deck and your score kept.
  3. At any point you can Shuffle, Reveal cards and more via Deck controls.
  4. Continue to reveal the wrong cards until you have correctly answered the entire deck. Good job!
  5. Via the Actions button you can Shuffle, Unshuffle, Flip all Cards, Reset score, etc.
  6. Come back soon, we'll keep your score.
    “Repetition is the mother of all learning.”
  7. Signed in users can Create, Edit, Import, Export decks and more!.

Bookmark to learn: Login to use bookmarks.

Share via these services ...

Email this deck:

Right: #
Wrong: #
# Right & # Wrong of #

Что такое ООП?

ООП - методология программирования, основанная на представлении программного продукта в виде совокупности объектов, каждый из которых является экземпляром конкретного класса. ООП использует в качестве базовых элементов взаимодействие объектов.

Что такое объект?

Объект - именнованная модель реальной сущности, обладающая конкретными значениями свойств и проявляющая свое поведение, обладающий именем набор данных (полей и свойств объекта), физически находящихся в памяти компьютера, и методов, имеющих доступ к ним. Объект -конкретный экземпляр класса.

Назовите основные принципы ООП.

Принято считать, что объектно-ориентированное программирование строится на 4 основных принципах (раньше их было всего 3). Эти принципы:
(Абстракция)
Инкапсуляция
Наследование
Полиморфизм

Что такое наследование?

Наследование это процесс благодаря которому один объект может приобрести свойства другого объекта (наследование всех свойств одного объекта другим)
и добавлять черты характерны только для него самого !
Суперкласс -> Подкласс
Родительский -> Дочерний

Что такое полиморфизм? Какие проявления полиморфизма в Java Вы знаете?

Полиморфизм (polymorphism) (от греческого polymorphos) - это свойство, которое позволяет одно и то же имя использовать для решения двух или более схожих, но технически разных задач. Целью полиморфизма, применительно к объектно-ориентированному программированию, является использование одного имени для задания общих для класса действий. Выполнение каждого конкретного действия будет определяться типом данных.
В более общем смысле, концепцией полиморфизма является идея "один интерфейс, множество методов". Это означает, что можно создать общий интерфейс для группы близких по смыслу действий.

Что такое инкапсуляция?

Инкапсуляция (encapsulation) - это сокрытие реализации класса и отделение его внутреннего представления от внешнего (интерфейса),
это свойство которое позволяет закрыть доступ к полям и методам класса другим классам, а предоставлять им доступ только через интерфейс(метод).
При использовании объектно-ориентированного подхода не принято применять прямой доступ к свойствам какого-либо класса из методов других классов. Для доступа к свойствам класса принято задействовать специальные методы этого класса для получения и изменения его свойств.

Что такое aбстракция?

Абстракция - это выделение общих характеристик объекта,исключая набор незначительных.
С помощью принципа абстракции данных, данные преобразуются в объекты. Данные обрабатываются в виде цепочки сообщений между отдельными объектами. Все объекты проявляют свои уникальные признаки поведения. Огромный плюс абстракции в том, что она отделяет реализацию объектов от их деталей, что в свою очередь позволяет управлять функциями высокого уровня через функции низкого уровня.

В чем преимущества объектно-ориентированных языков программирования?

Они представляют реальные объекты в жизни, например, Машина, Джип, Счет в банке и тд… Инкапсуляция, наследование и полиморфизм делает его еще мощнее.

Как использование объектно-ориентерованного подхода улучшает разработку программного обеспечения?

Основные преимущества:
повторное использование кода(наследование);
реальное отображение предметной области. Объекты соответствуют реальному миру(см. предыдущий пункт).

Имеется выражение "является" и "имеет". . Что они подразумевают в плане принципов ООП? В чем разница между композицией и агрегацией?

"является" - наследование
"имеет" - композиция
В качестве примера предположим что у нас есть классы Строение, Дом и Ванная комната. Так вот Дом является строением, что нельзя сказать про Ванну, которая не является домом. А вот Дом имеет\включает в себя Ванну.
Если вы хотите использовать повторно код, то не обязательно использовать наследование. Если нет отношения , то лучше тогда использовать композицию для повторного использования кода.
Не используйте наследование для получение полиморфизма, если нет ключевой зависимости "является". Используйте интерфейсы для полиморфизма.
Из спецификации можно узнать, что
Ассоциация обозначает связь между объектами.
Агрегация и композиция это частные случаи ассоциации.
Агрегация предполагает, что объекты связаны взаимоотношением "part-of" (часть).
Композиция более строгий вариант агрегации. Дополнительно к требованию part-of накладывается условие, что "часть" не может одновременно принадлежать разным "хозяевам", и заканчивает своё существование вместе с владельцем.
Например:
мотоцикл -> cумка с багажём - ассоциация. Отношение "имеет".
мотоцикл -> колесо - композиция.
группа по интересам -> человек - агрегация. человек часть группы, но может принадлежать нескольким разным группам.

Subjects: