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

Поиск

Категории

Облако тегов

acer ado.net amd asp.net c sharp c# cms css exceptions google html ipad iphone it бизнес javascript jquery linq microsoft mysql net nokia nokia lumia samsung seo silverlight sql surface tsql windows 8 windows blue windows phone windows rt xna безопасность библиотека вопросы на собеседовании интересные проекты интернет интернет магазин исключения книга книги компьютерная безопасность компьютерные игры контролы курсы по программированию логированние исключений мобильные приложения монетизация сайтов наушники новости новости it новости microsoft новости интернет новости технологий ноутбук ноутбуки обработка исключений оптимизация острова периферия планшет планшеты поддержка сайтов поисковое продвижение программы продвижение продвижение сайта продвижение сайтов рабство разработка игр разработка сайтов раскрутка сайта рекламные технологии смартфон смартфоны собеседование создание сайтов средства разработки туризм фриланс хостинг яндекс
  << Предыдущий пост       Следующий пост >>  
От: inbruk
30. июля 2014 01:46

ООП

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

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

  • Абстракция

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Принципы usability для CMS
Оригинал статьи взят отсюда: Принципы usability для CMS Автор (на хабре): surething   Ни разу не слышал, чтобы наши (читай: совковые) вендоры коробочных CMS заказывали usability тестирование своих продуктов. Напрашивается два основных вывода: Usability этих систем и так на высоте! В каждой компании есть свои usability специалисты, которые принимают участие ...

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

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




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


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