русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объектно-ориентированное программирование


Дата добавления: 2015-07-09; просмотров: 623; Нарушение авторских прав


Современное объектное программирование основано на введении новых типов данных (классов) и определении операций для них. В системе MATLAB существуют следующие стандартные классы: числовые массивы (double), двумерные разреженные матрицы (sparse), строки или массивы символов (char), структуры или массивы записей (struct), массивы ячеек (cell). Кроме того, некоторые расширения MATLAB используют свои классы.

В MATLAB тип переменной или соответствующий класс не объявляется и не описывается, а определяется автоматически при создании объекта. Например, при задании матрицы А=еуе(5) создается объект класса double, а по команде As=sparse(A) производится преобразование матрицы А в разреженную матрицу As, то есть создается новый объект класса sparse.

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

Так, в каталоге symbolic находятся три подкаталога: @char, @sym, @symlibs. В подкаталоге @sym содержится конструктор класса – файл sym.m и множество других файлов, реализующих операции с символьными переменными.

При вызове конструктора динамически создается объект. Если конструктор вызывается без аргументов, то создается шаблон объекта, обычно с пустыми полями. Если на вход конструктора подается объект того же класса, то конструктор обычно возвращает сам введенный объект. Для проверки принадлежности объекта OBJ классу CLASS служит команда 1sa (0BJ.CLASS)



Функция class (MATLAB различает большие и малые буквы) определяет класс объекта при вызове class(OBJ) и переводит структуру S в объект класса CLASS при обращении class (S.CLASS). Команды работы с классами описаны в таблице 2.3.

 

Таблица 2.3

Команда Назначение
Class Определение класса или создание объекта
Isa Определение принадлежности объекта к классу
isobject Выявление принадлежности объекта к какому-нибудь классу
methods Вывод списка методов для данного класса
inferiorto Указание подчиненности класса по отношению к некоторым классам
superiorto Указание старшинства класса по отношению к некоторым классам

 

При работе с объектами учитываются иерархия (старшинство) и наследование, когда объекты одного класса приобретают свойства других классов. При простом наследовании (один класс-родитель) дочерний объект включает все поля родительского объекта, и при работе с ним можно обращаться к методам родительского класса, кроме того, добавляются специфические для дочернего класса поля. При этом методы нового класса не могут применяться к объектам родительского класса. Для реализации множественного наследования (несколько классов родителей) применяется команда class (S, CLASS, PARENTl, PARENT2….), здесь из структуры S создается объект класса CLASS, наследующий свойства классов PARENT1, PARENT2.

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

Чтобы использовать для объектов нового класса знаки основных математических операций, создаётся в каталоге функции с именами, которые отвечают за операции сложения, матричного умножения и т.д. Список имен математических операций можно получить по команде help*.

 




<== предыдущая лекция | следующая лекция ==>
Форматные операции ввода-вывода | Отладка


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.95 сек.