ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
От: inbruk
30. июля 2014 01:46

ООП

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

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

  • Абстракция

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Похожие записи


Мартин Ньюкирк Косс - Быстрая разработка программ: принципы, примеры, практика
Название: Быстрая разработка программ: принципы, примеры, практика Автор: Роберт К. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс Издательство: Вильямс ISBN: 5-8459-0558-3 Год: 2004 Страниц: 752 От издателя: Роберт Мартин в соавторстве с Джеймсом Ньюкирком и Робертом Коссом предлагает вниманию читателей книгу о различных методиках быстрого (и даже ...

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

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

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий