Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция 1

.pdf
Скачиваний:
16
Добавлен:
07.02.2016
Размер:
3.14 Mб
Скачать

Абстракция - Робот

Свойства

Назначение

Высота

Вес

Производитель

Абстракция - компьютер

Свойства

Тип

Производитель Размер экрана Год производства

Дата последнего обновления ОС

Графическое отображение абстракции

Идентификатор класса

-имя свойства

+операции()

Лампочка

-состояние

+Включить() +Выключить() +Проверить состояние()

Робот

-Назначение -Высота -Производитель -Вес

+Установить вес() +Установить производителя() +Установить высоту() +Установить назначение() +Узнать назначение() +Узнать высоту()

+Узнать вес()

+Узнать производителя()

Абстрагирование

Лампочка

-состояние

+Включить() +Выключить() +Проверить состояние()

Робот

-Назначение -Высота -Производитель -Вес

+Установить вес() +Установить производителя() +Установить высоту() +Установить назначение() +Узнать назначение() +Узнать высоту()

+Узнать вес()

+Узнать производителя()

Экземпляры

Лампочка : Лампочка

состояние : bool = включена

Лампочка2 : Лампочка

состояние : bool = выключена

: Робот

Назначение = Нюхач Высота = 1 м Производитель = Simence Вес = 15 кг

HRP-4C : Робот

Назначение = Фотомодель Высота = 158 см Производитель = AIST Вес = 43 кг

Виды абстракций

Два основных вида абстракций:

Тип данных объектов природы (класс)

Экземпляр класса (объект)

Класс

логическая абстракция

определяет новый тип данных,

включает как данные так и код функции

Инкапсуляция

Спецификаторы доступа

public (+)

private (-)

protected (#)

Форма записи класса

идентификатор нового типа

сlass имя_класса :список_наследования{

//Закрытые члены по умолчанию. protected:

//Закрытые члены, которые могут быть унаследованы.

public:

// Открытые члены.

} ;

Примеры классов

имя типа

class Lamp{

class Robot{

Робот

-Назначение -Высота -Производитель -Вес

+Установить вес() +Установить производителя() +Установить высоту() +Установить назначение() +Узнать назначение() +Узнать высоту()

+Узнать вес()

+Узнать производителя()

bool state; public:

void TurnOn(); void TurnOff(); bool IsTurned(); };

Лампочка

-состояние

+Включить() +Выключить() +Проверить состояние()

данные класса

методы

класса

char *nazn[20], prod[100]; int height;

float weight; public:

void setn(char *n); void setp(char *p); void seth(int h); void setw(float f); void showall();

};

Описание методов класса

тип имя_класса::имя_метода(аргументы)

{

// тело метода

}

class Lamp{

void Lamp::TurnOn()

 

bool state;

{state=true;}

 

public:

 

void TurnOn();

void Lamp::TurnOff()

 

void TurnOff();

{state=false;}

 

bool IsTurned();

 

};

bool Lamp::IsTurned()

 

 

{return state;}