Архив за Октябрь, 2011 года

Инкапсуляция, Наследование, Полиморфизм

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

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

Продолжить чтение »

Основы ООП

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

Посмотрите на обычное здание, что вы видите в первую очередь? Я надеюсь, что это окна, двери, крыша и т.д., а не песок, цемент, кирпич, стекло. То есть в повседневной жизни мы привыкли думать объектами, а не их составляющими. Некоторые из объектов могут быть абстрактными, как, например, фигура – это абстрактное понятие, а не конкретное, как  квадрат или круг. Точно так же происходит в ООП, у нас есть объекты и есть их составляющие. Вы можете использовать объект не задумываясь о его составляющих это упростит вашу жизнь, иногда незачем знать внутренности того как устроен объект, для того, чтобы начать его использовать. Например, автомобиль – для его управления вам не обязательно знать из каких деталей состоит мотор или коробка передач, вам достаточно знать, что при нажатии на педаль газа автомобиль поедет быстрее, а при нажатии на тормоз, он остановится. Точно то же и с объектами в программировании, вам достаточно знать, что при вызове метода Draw у объекта Shape будет нарисована фигура, при этом не обязательно знать как работает видеокарта и монитор и как изображение на него выводится.

Продолжить чтение »