лекция 8 Объекты 2 (8 лекций в ворде)

2017-08-02СтудИзба

Описание файла

Файл "лекция 8 Объекты 2" внутри архива находится в папке "Lection 8". Документ из архива "8 лекций в ворде", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "лекция 8 Объекты 2"

Текст из документа "лекция 8 Объекты 2"

Лекция

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

Теоретические основы ООП

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

Процедурное программирование

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

Структурное программирование (стиль программирования) – совокупность рекомендуемых технологических приемов.

Контроль на этапе разработки, Метод пошаговой детализации с использованием 3 базовых структур (следование, альтернатива, повторение)

Следующий этап - повышение роли организации данных (Паскаль).

Логическим следствием развития этого этапа стал модульный подход к разработки программ

Модульное программирование предполагает выделение групп подпрограмм, использующие одни и те же глобальные данные (типы данных).

Например, System

В виде модулей реализованы также библиотеки классов и компонент (VCL – Visual library Component), которая была разработана для Делфи и используется в С++ Builder

Windows , Messages, Dialogs, Forms

SysUtils – содержит библиотеку классов стандартных исключений;

Graphics – содержит библиотеку графических компонент.

::= Unit ;

Interface

Implementation

[ Initialization

]

[ Finalization

]

End.

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

Технология создания сложного ПО, основанная на представлении программы в виде совокупности объектов (классов).

Идея заключается в стремлении связать данные с обрабатываемыми эти данные процедурами и функциями в единое целое – класс.

Фактически его можно рассматривать как модульное программирование нового уровня.

Библиотека классов Делфи и С++ - это фактически набор «кирпичиков» для построения программ.

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

Класс ОКНО:

Поля X1,Y1,X2,Y2,Color

Метод Инициализировать(ax1,ay1,ax2,ay2,acolor)

Метод Изобразить

Конец описания

И в Делфи и в С++ задание класса:

Class

{ private: <внутренние (недоступные) компоненты класса>;

protected: <защищенные компоненты класса >;

public: <общие компоненты класса >;

};

Type TPoint = class {класс точка на плоскости}

X,Y: Integer;

Visible:Boolean;

Color:word;

Procedure Init(InitX, InitY, Col:integer);

Procedure Show; ; {нарисовать}

Procedure MoveTo(StepX, StepY: integer); {переместить}

Function IsVisible:boolean; {сделать видимой}

End;

var X1,X2:Tpoint;

class point

{ int x,y,color; //координаты

public:

int getx(){return} //метод получения координаты

void setpoint(int ncv) //метод задания координаты и цвета

}

Point X1,X2; {объекты}

Переменные типа класс называются объектами.

Операции над объектами:

  • Создание, уничтожение;

  • Модификация (обращение к объекту для изменения его состояния);

  • Селекция ( ответ объекта о его состоянии);

  • Итерация (доступ к содержанию объекта по частям, например, массив).

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

Переменная называется статической, если место для нее выделяется в момент компиляции программы. Динамической – если в момент выполнения программы.

В Делфи все объекты динамические.

Средства разработки классов:

Механизмы инкапсуляции, наследования и полиморфизма.

Инкапсуляция - это объединение сущностей, из которых состоит класс, в единое целое.

Наследование – любой класс может быть порожден от другого класса. Для этого при его объявлении указывается имя родителя.

Структура описания класса-потомка:

Type = class (<имя класса родителя >)

<Новые методы класса потомка>

Type Tcircle = class (Tpoint) {класс окружность}

Radius:integer;

Procedure Show;

End;

Определение производного класса выполняется следующим образом:

Class :

{ }

вид : private (закрытый),

protected (защищенный), public (общедоступный)

Class A

{ private: int nz1a;

protected: int nz2a;

public :

int nza;

void print(void)

{…..}

}

class B: private A <все компоненты А не доступны в В>

{private: int nz1b;

…….

}

class C: protected A <защищенное поле и общедоступное поле А доступны в В, но со свойством protected >

{….}

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

Все классы Делфи и библиотеки VCL (С++ Builder используется библиотека объектов VCL (Visual Component Library) ) порождены от единственного родителя - класса Tobject. Этот класс не имеет полей, но имеет методы общего назначения, обеспечивающие весь жизненный цикл объектов – от создания до уничтожения. В Делфи запрещено множественное наследование – каждый класс имеет только одного родителя. Наследование обеспечивает создание дерева родственных объектов. В С++ Builder классы конструируются по правилам Делфи, но используя синтаксис С++

Полиморфизм - средство, позволяющие называть разные алгоритмические действия одним именем.

Type Tcircle = class (Tpoint)

Radius:integer;

Procedure Init(InitX, InitY, R:integer);

Procedure Show; {нарисовать}

Procedure MoveTo(StepX, StepY: integer); {переместить}

Function IsVisible:boolean; {сделать видимой}

End;

Для реализации полиморфизма в Делфи используются механизмы виртуальных и динамических методов.

Для описания виртуального метода используется слово virtual

Динамического – dynamic

Procedure Show; virtual; {нарисовать}

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

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

В состав любого класса входят 2 специальных метода – конструктор и деструктор.

Конструктор порождает объект и выполняется первым. Конструктор распределяет объекты в динамической памяти.

Деструктор удаляет объекты из кучи.

Описания их с помощью зарезервированных слов – Constructor , Destructor .

У класса Tobject - эти методы называются Create и Destroy, так они называются и в большинстве потомках.

Type TPoint = class

X,Y: Integer;

Visible:Boolean:

Color:word;

Constructor Create (InitX, InitY, Col:integer);

Destructor Destroy;

Procedure Show; virtual {нарисовать}

Procedure MoveTo(StepX, StepY: integer); {переместить}

Function IsVisible:boolean; {сделать видимой}

End

Class A

{ int a1;

public:

virtual void Show(void)

}

Классы определяются в модулях. При объявлении класса в интерфейсной секций определяются области видимости элементов класса.

Например,

Private [praivit]– закрытые – доступны только для методов этого класса;

Protected [protekted]– защищенные -доступны для методов этого класса и его потомкам

Public –доступные - нет ограничений на область видимости

Пример. Код программы при создании Приложения

В Делфи

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var Form1: TForm1;

implementation

{$R *.dfm}

end.

Код проекта

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

End. .

Этапы разработки ПО с использованием ООП.

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

  2. Проектирование:

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

  • Физическое проектирование включает объединение описаний классов в модули, выбор схемы их подключения (статическая или динамическая компоновка), определение способов взаимодействия с оборудованием, с операционной системой и/или другим программным обеспечением (например, базами данных, сетевыми программами), обеспечение синхронизации процессов для систем параллельной обработки и т.д.

  1. Эволюция системы – это процесс поэтапного подключения классов к проекту. Создание основной программы и тестирование.

  2. Модификация – процесс добавления новых функциональных возможностей или изменение существующих свойств системы.

Технология разработки Windows приложения

Delphi и Visual C++ - это объединение идеи событийного управления, ООП и визуального программирования.

  1. В Delphi и С++ Builder используется библиотека объектов VCL (Visual Component Library) - библиотека визуальных компонент.

Практически эти среды отличаются языком разработки:

Delphi использует Object Pascal, С++ Builder – C++

Любое приложение состоит из минимум 3 объектов: объекта - приложения, объекта - формы (окна) и объекта экрана.

Все окна приложения строятся на базе класса формы TForm.

B VCL форма - это окно.

Объект приложения строится на базе класса TApplication.

  1. Delphi и С++ Builder - пример RAD системы ( Rapid Application Development) - Среда быстрой разработки приложений в основе которой лежит технология визуального проектирования и событийного программирования. Проектировщик создает проект окна и переносит на него мышью нужные элементы с панели компонент. Затем определяет свойства компонент и пишет обработчики событий.

  1. Основные принципы событийного программирования.

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

Примеры событий:

OnClick – щелчек мыши

OnDblClick двойной щелчек мыши

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее