Сегодня 14 мая, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7273
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
coding4.net
coding4.net
Голосов: 1
Адрес блога: http://www.coding4.net/
Добавлен: 2012-06-11 20:16:46
 

Основные принципы ООП

2014-07-30 01:46:00 (читать в оригинале)

ООП

На сегодняшний день, большинство языков программирования, придерживаются Объектно-Ориентированной парадигмы программирования. И это очень хорошо, т.к. ее принципы позволяют создавать эффективные и простые, в плане разработки программы.

Разберем простых примерах основные принципы ООП- абстракцию, инкапсуляцию, полиморфизм и наследование.

  • Абстракция

Как известно, ООП оперирует главным образом такими понятиями как класс и объект.

Класс- это шаблон, содержащий в себе набор характеристик (поля и методы создаваемого класса), по которому строятся конкретные объекты.

Объект- это экземпляр класса, созданный по шаблону класса.

Абстракция- это способ представления. Она позволяет выделить только необходимые классу характеристики. Например, нужно создать класс Автомобиль. Какие характеристики присущи ему? Это могут быть наименование модели и год выпуска, и д.р.. Только что мы описали абстракцию создаваемого класса.

  • Инкапсуляция

Инкапсуляция- (от лат. in capsule- «в капсуле»)- способ скрытия полей и/или методов класса от пользователя, в основном из соображений безопасности.

Например, есть класс, в котором описан метод нахождения корней линейного уравнения. Это открытый метод, и пользователь может к нему обращаться. В свою очередь, метод нахождения корней линейного уравнения, содержит в себе еще одни метод- метод  нахождения дискриминанта.  Т.к. пользователю необходимо только нахождение корней линейного уравнения, а дискриминант ему совсем не нужен, то метод нахождения дискриминанта будет лучше скрыть от пользователя, и оставить его открытым только для внешнего метода (нахождения корней лин. ур.). Это и есть инкапсуляция. Получается, что мы «инкапсулировали» метод нахождения дискриминанта от пользователя.

  • Полиморфизм

Полиморфизм- это принцип, который позволяет одинаково обрабатывать разные данные.

К примеру, описан метод который определяет сезон года (лето, осень, зима, весна), на основе введенного пользователем номера месяца. Но ведь пользователь может ввести месяц иначе, строкой-«май». А это разные типы данных, и в этих случаях нужны разные алгоритмы, для решения данной задачи. Чтобы выйти из этой ситуации, нужно описать два метода с одинаковым именем, но на вход эти методы должны принимать разные типы данных. И у каждого метода, должны быть описаны свои алгоритмы решения задачи. В итоге, мы получим метод, описанный дважды, по-разному. И этот метод будет давать корректный результат, не зависимо от того, какой тип данных использовал пользователь.

  • Наследование

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

К примеру есть класс «человек», у которого есть свойства- имя и возраст. На его основе можно описать еще два- «мужчина» и «женщина», т.к. у класса-родителя, характеристики «имя» и «возраст» применимы к обоим классам-потомкам. После этого, созданные "мужчина" и "женщина" можно расширить, добавив к каждому из них свои, применимые только к каждому из них,  свойства или методы.

К классу «мужчина» добавим поле «служба в армии», а к классу «женщина»- добавим метод «приготовить обед».

В итоге мы создали 2 разных класса на основе одного- родительского,  у которых есть общие и свои уникальные характеристики.

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

Очень подробно о модификаторах доступа, читайте в статье: ООП. Модификаторы.

Чвсто на собеседованиях задают вопросы из на тему этого поста: что такое абстракция, инкапсуляция, полиморфизм, наследование ? Что такое парадигма ООП ?

Тэги: вопросы, собеседовании

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Истории»
Взлеты Топ 5
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.