MATLAB R2008a. Классы. Часть1: Учебное пособие, страница 9

Математические множества могут помочь проиллюстрировать отношения между классами. Например, множество Положительных Целых (Positive Integers) есть подмножество Целых (Integers) и подмножество Положительных (Positives) чисел. Все три указанных множества, в свою очередь, являются подмножествами Реальных (Reals) чисел, которые входят в более общее множество Всех Чисел (All Numbers). Определение Положительных Целых требует дополнительной (к  All Numbers) спецификации того, что элементы этого подмножества должны быть большими, чем ноль. Положительные Целые числа объединяют некоторые черты Целых и Положительных чисел и т.д.

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

Специальный оператор-отношение (в общем тексте - «is a» - есть) показывает, определено ли подмножество в терминах существующих супермножеств. Например, следующие утверждения имеют смысл:

w  A Positive Integer is an Integer (Положительное Целое есть Целое);

w  A Positive Integer is a Positive number (Положительное Целое есть Положительное число).

Ниже показан вариант диаграммы, отражающей рассмотренную иерархию множеств и подмножеств:

Reusing Solutions (Многократное использование решений)

Как следует из вышеприведенного примера, классы могут организовывать таксономическую (классификационную) иерархию, которая стимулирует повторное использование вышестоящих кодов. Например, если вы определяете класс последовательных портов компьютера, он, вероятно, может быть во многом подобен классу параллельных портов. Чтобы использовать общие для двух типов портов элементы кода,  эти элементы  нужно определить как суперкласс и затем организовать подклассы для двух специфических портов.

Objects (Объекты)

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

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

EncapsulatingInformation (Инкапсуляция информации)

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

Examples to Get Started (Примеры для начала)

Следующие разделы иллюстрируют некоторые основные возможности MATLAB-классов:

Developing Classes — Typical Workflow (Создание классов – типовой рабочий процесс) – применяет объектно-ориентированное мышление к знакомым концептам для иллюстрации процесса создания классов;

Using Objects to Write Data to a File (Использование объектов для записи данных в файл) – показывает преимущества использования объектов для задания определенных операций и сопряжение ОО программирования с процедурно-ориентированным процессом;

Example — Representing Structured Data (Пример – представление структурированных данных) – дает приложение объектно-ориентированной техники для управления данными;

Example — Implementing Linked Lists (Пример – создание связных списков) – использует  handle-класс для создания двусвязного списка.

 LearningObject-OrientedProgramming (Изучение объектно-ориентированного программирования)

Следующие источники могут помочь вам освоить базовые знания по объектно-ориентированному планированию и концептам.

w  Shalloway, A., J. R. Trott, Design Patterns Explained A New Perspective on Object-Oriented Design. Boston, MA: Addison-Wesley 2002.

w  Gamma, E., R. Helm, R. Johnson, J. Vlissides, Design Patterns Elements of Reusable Object-Oriented Software. Boston, MA: Addison-Wesley 1995.

w  Freeman, E., Elisabeth Freeman, Kathy Sierra, Bert Bates, Head First Design Patterns. Sebastopol, CA 2004.

w  See Wikipedia : Object Oriented Programming (Объектно-ориентированное программирование).

Detailed Information And Examples (Детальная информация и примеры)

В этом разделе:

Rapid Access to Information (Быстрый доступ к информации).

Rapid Access to Information (Быстрый доступ к информации)

Этот раздел предоставляет концептуальную информацию по классам и примеры исполнения. Ниже в таблице приведены важнейшие темы, разделы по теории и варианты реализации.

Таблица тем и ссылок