Принципы объектно – ориентированного подхода

1. Все является объектом

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

2. Программа есть группа объектов, общающихся друг с другом

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

3. Каждый объект имеет свою память, состоящую из других объектов и/или элементарных данных.

Объект хранит некоторые данные. Эти данные – это другие объекты, входящие в состав данного объекта и/или данные элементарных (или примитивных) типов, такие как целое, вещественное, символ, и т.п.

4. Каждый объект имеет свой тип (класс).

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

Все объекты одного и того же типа могут получать одни и те же сообщения.

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

Light lt2 = new Light();

lt2.on();

У lt2 и lt одни и те же методы

Сокрытие реализации (инкапсуляция)

Клиенту ограничивают доступ к внутреннему устройству. Это нужно для:

1) для сокрытия деталей от клиента

2) для возможности модернизации класса без модификации клиентского кода

Это описывается такими уровнями доступа:

1) public – доступно всем;

2) private – клиент не может пользоваться методами, которые объявлены private. Они доступны создателю класса внутри его методов;

3) protected – имеют доступ производные классы, классы – потомки;

4) пакетный доступ – группа классов-пакет, методы доступны внутри пакета (package access). Внутреннее использование - внутри пакета(библиотеки)-одной директории.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: