Какой рейтинг вас больше интересует?
|
Основные принципы ООП2014-07-30 01:46:00 (читать в оригинале)На сегодняшний день, большинство языков программирования, придерживаются Объектно-Ориентированной парадигмы программирования. И это очень хорошо, т.к. ее принципы позволяют создавать эффективные и простые, в плане разработки программы. Разберем простых примерах основные принципы ООП- абстракцию, инкапсуляцию, полиморфизм и наследование.
Как известно, ООП оперирует главным образом такими понятиями как класс и объект. Класс- это шаблон, содержащий в себе набор характеристик (поля и методы создаваемого класса), по которому строятся конкретные объекты. Объект- это экземпляр класса, созданный по шаблону класса. Абстракция- это способ представления. Она позволяет выделить только необходимые классу характеристики. Например, нужно создать класс Автомобиль. Какие характеристики присущи ему? Это могут быть наименование модели и год выпуска, и д.р.. Только что мы описали абстракцию создаваемого класса.
Инкапсуляция- (от лат. in capsule- «в капсуле»)- способ скрытия полей и/или методов класса от пользователя, в основном из соображений безопасности. Например, есть класс, в котором описан метод нахождения корней линейного уравнения. Это открытый метод, и пользователь может к нему обращаться. В свою очередь, метод нахождения корней линейного уравнения, содержит в себе еще одни метод- метод нахождения дискриминанта. Т.к. пользователю необходимо только нахождение корней линейного уравнения, а дискриминант ему совсем не нужен, то метод нахождения дискриминанта будет лучше скрыть от пользователя, и оставить его открытым только для внешнего метода (нахождения корней лин. ур.). Это и есть инкапсуляция. Получается, что мы «инкапсулировали» метод нахождения дискриминанта от пользователя.
Полиморфизм- это принцип, который позволяет одинаково обрабатывать разные данные. К примеру, описан метод который определяет сезон года (лето, осень, зима, весна), на основе введенного пользователем номера месяца. Но ведь пользователь может ввести месяц иначе, строкой-«май». А это разные типы данных, и в этих случаях нужны разные алгоритмы, для решения данной задачи. Чтобы выйти из этой ситуации, нужно описать два метода с одинаковым именем, но на вход эти методы должны принимать разные типы данных. И у каждого метода, должны быть описаны свои алгоритмы решения задачи. В итоге, мы получим метод, описанный дважды, по-разному. И этот метод будет давать корректный результат, не зависимо от того, какой тип данных использовал пользователь.
Наследование- это принцип, который позволяет создавать новые классы на основе уже существующих классов. При этом новые перенимают какую-то часть, или все свойства и методы уже существующего класса. К примеру есть класс «человек», у которого есть свойства- имя и возраст. На его основе можно описать еще два- «мужчина» и «женщина», т.к. у класса-родителя, характеристики «имя» и «возраст» применимы к обоим классам-потомкам. После этого, созданные "мужчина" и "женщина" можно расширить, добавив к каждому из них свои, применимые только к каждому из них, свойства или методы. К классу «мужчина» добавим поле «служба в армии», а к классу «женщина»- добавим метод «приготовить обед». В итоге мы создали 2 разных класса на основе одного- родительского, у которых есть общие и свои уникальные характеристики. Для того, чтобы организовать принципы ООП на программном уровне, существуют специальные служебные слова- модификаторы. Они позволяют определенные свойства к классам и и их элеменам, а так-же установить различные права доступа. Очень подробно о модификаторах доступа, читайте в статье: ООП. Модификаторы. Чвсто на собеседованиях задают вопросы из на тему этого поста: что такое абстракция, инкапсуляция, полиморфизм, наследование ? Что такое парадигма ООП ?
|
Категория «Художники»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.