SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Объектный подход к проектированию 
программ 
Установочная лекция по дисциплине «Высокоуровневые методы 
информатики и программирования» 
class 
Animal 
Кот Барсик – экземпляр класса Animal
Сложность программного обеспечения 
Декомпозиция
Абстрагирование 
Абстракция фокусируется на существенных с точки зрения 
наблюдателя характеристиках объекта
Моделирование
Синхронный двигатель 
Математическая модель двигателя
Как строить абстрактный объект? 
В окружающем нас мире можно выделить различные группы вещей. 
Назовем их классами.
class Animal 
{ 
} 
Класс Animal 
Animal Barsik; 
Kind of animal = "Cat" ("Кот"). 
Height = 50 cm (большой котяра!). 
Length = 110 cm (это рысь скорее, а 
не домашняя кошка!). 
Number of legs = 4. 
Color = "Black" (черный). 
Has tail = true (истина). 
Is mammal = true (истина).
Классы и объекты (экземпляры) класса 
class Animal 
{ string 
kindOfAnimal; 
string name; 
int numberOfLegs; 
int height; 
int length; 
string color; 
bool hasTail; 
bool isMammal; 
bool spellingCorrect; 
} 
Animal Barsik; 
Barsik = new Animal(); 
Barsik.kindOfAnimal = 
"Cat"; 
Barsik.name = "Кот 
Барсик"; 
Barsik.numberOfLegs = 4; 
Barsik.height = 50; 
Barsik.length = 110; 
Barsik.color = "Black"; 
Barsik.hasTail = true; 
Barsik.isMammal = true;
[ атрибуты ] [ спецификаторы ] class имя_класса [ : предки ] 
тело_класса 
 Тело класса — список описаний его элементов, заключенный в фигурные 
 Атрибуты задают дополнительную информацию о классе. 
 Спецификаторы определяют свойства класса, а также доступность класса 
©Павловская Т.А. (СПбГУ 
ИТМО) 
Описание класса 
 Имя класса задается по общим правилам. 
скобки. 
для других элементов программы. 
9 
Простейший пример описания класса: 
class Demo {} // пустой класс
Доступ 
class Animal 
{ 
public string 
kindOfAnimal; 
public string name; 
public int numberOfLegs; 
public int height; 
public int length; 
public string color; 
bool hasTail; 
protected bool isMammal; 
private bool 
spellingCorrect; 
} 
Ключ к hasTail не указан???
Методы 
А теперь, используя этот МЕТОД, 
сложи 2 числа 5 и 3 
Сложение двух чисел
void Say() 
{ 
Console.WriteLine(“Myav"); 
} 
… 
Animal Barsik=new Animal 
(); 
Barsik.Say()
.Net 
Содержит огромную библиотеку классов, сгруппированных по пространствам имен
©Павловская Т.А. (СПбГУ 
ИТМО) 
Пример класса 
class Monster { 
public Monster() // конструктор 
{ 
14 
this.name = "Noname"; 
this.health = 100; 
this.ammo = 100; 
} 
public Monster( string name ) : this() 
{ 
this.name = name; 
} 
public Monster( int health, int ammo, string 
name ) 
{ 
this.name = name; 
this.health = health; 
this.ammo = ammo; 
} 
public int GetName() // метод 
{ return name; } 
public int GetAmmo() // метод 
{ return ammo;} 
public int Health { // свойство 
get { return health; } 
set { if (value > 0) health = value; 
else health = 0; 
} 
} 
public void Passport() // метод 
{ Console.WriteLine( 
"Monster {0} t health = {1}  
ammo = {2}", name, health, ammo ); 
} 
public override string ToString(){ 
string buf = string.Format( 
"Monster {0} t health = {1}  
ammo = {2}", name, health, ammo); 
return buf; } 
string name; // поле 
int health, ammo; // поле 
}
НАСЛЕДОВАНИЕ
 ООП позволяет писать гибкие, расширяемые и читабельные 
 Во многом это обеспечивается благодаря полиморфизму, под 
которым понимается возможность во время выполнения 
программы с помощью одного и того же имени выполнять разные 
действия или обращаться к объектам разного типа. 
 Чаще всего понятие полиморфизма связывают с механизмом 
©Павловская Т.А. (СПбГУ 
ИТМО) 
Полиморфизм 
программы. 
виртуальных методов. 
16 
Метод Move (double s, double v)
 использование при программировании понятий, близких к 
 возможность успешно управлять большими объемами исходного 
кода благодаря инкапсуляции, то есть скрытию деталей реализации 
объектов и упрощению структуры программы; 
 возможность многократного использования кода за счет 
 сравнительно простая возможность модификации программ; 
 возможность создания и использования библиотек объектов. 
©Павловская Т.А. (СПбГУ 
ИТМО) 
Достоинства ООП 
предметной области; 
наследования; 
17
 некоторое снижение быстродействия программы, связанное с 
©Павловская Т.А. (СПбГУ 
ИТМО) 
Недостатки ООП 
18 
использованием виртуальных методов; 
 идеи ООП не просты для понимания и в особенности для 
практического использования; 
 для эффективного использования существующих объектно- 
ориентированных систем требуется большой объем 
первоначальных знаний; 
 неграмотное применение ООП может привести к значительному 
ухудшению характеристик разрабатываемой программы.
Пример описания классов в С# 
Общее понятие. 
Поля, методы, ключи доступа. Конструкторы. 
19 Болгарина Е.В., РГППУ, 2010
Описание класса 
class <имя>{ 
[ private ] 
<описание скрытых элементов> 
public 
<описание доступных элементов> 
}; 
20 Болгарина Е.В., РГППУ, 2010
Пример 1. Опишем класс Персона. 
1.1. Полями данного класса будут Имя, Возраст, Зарплата. 
1.2. Объявим метод вывода на экран информации об объекте. 
21 Болгарина Е.В., РГППУ, 2010
Создадим 2 объекта 
(экземпляры класса – Рабочий и Начальник). 
22 Болгарина Е.В., РГППУ, 2010
В итоге должно получиться следующее: 
Самостоятельно: 
Добавьте строки, задающие значения полям объекта boss. 
Результат работы программы должен быть примерно таким: 
23 Болгарина Е.В., РГППУ, 2010
Ключи доступа. 
Изменим ключ доступа к полям с Public на Private 
24 Болгарина Е.В., РГППУ, 2010
Определение метода вне класса. 
В примере метод Show_information определен внутри класса. Но при большом 
количестве методов такой способ сделает описание класса слишком громоздким. 
Поэтому чаще всего в описании класса ограничиваются объявлением метода, а его 
реализацию описывают ниже. 
25 Болгарина Е.В., РГППУ, 2010
Конструкторы. 
 Для создания объектов класса с инициализацией 
полей. 
 Конструктор всегда имеет такое же имя, как и класс. 
 Конструктор не возвращает никаких значений. 
 При создании объектов программа каждый раз будет 
вызывать описанный конструктор. 
 Конструкторов может быть несколько, в зависимости 
от того, какие из параметров вы хотите 
инициализировать. 
26 Болгарина Е.В., РГППУ, 2010
Опишем конструктор для класса Person: 
27 Болгарина Е.В., РГППУ, 2010
Теперь создавать объекты в теле главной 
процедуры будем с помощью Конструктора. 
28 Болгарина Е.В., РГППУ, 2010
Результат: 
29 Болгарина Е.В., РГППУ, 2010
Конструкторы по умолчанию 
30 Болгарина Е.В., РГППУ, 2010
конструктор с пустыми полями 
31 Болгарина Е.В., РГППУ, 2010
Обращение к закрытым полям класса. 
 Принцип сокрытия информации (инкапсуляция) 
предоставляет программе минимум информации по 
работе с классом. 
 Изменение полей класса возможно только через 
использование методов самого класса. 
 Создадим открытые, т.е. доступные программе 
методы по управлению полями класса Person: 
 Метод изменения зарплаты change_salary; 
 Метод вывода возраста get_age; 
32 Болгарина Е.В., РГППУ, 2010
33 Болгарина Е.В., РГППУ, 2010
34 Болгарина Е.В., РГППУ, 2010
35 Болгарина Е.В., РГППУ, 2010
Лабораторная работа 
Индивидуальные задания: 
1.Описать класс Aeroflot, содержащую закрытые поля: название пункта 
назначения рейса, номер рейса, тип самолета. 
Описать конструкторы без параметров и с различным числом параметров. 
Описать открытые методы Вывод информации, Замена номера рейса. 
Создать несколько объектов (не менее 3х) и продемонстрировать работу 
созданных методов. 
2. Описать класс Price, содержащий следующие поля: название товара, 
название магазина, в котором продается товар, количество товара, стоимость 
единицы товара. 
Описать конструкторы без параметров и с различным числом параметров. 
Описать открытые методы Вывод информации, Замена стоимости товара. 
Создать несколько объектов (не менее 3х) и продемонстрировать работу 
созданных методов. 
Определить общую стоимость товара в определенном магазине. 
36 Болгарина Е.В., РГППУ, 2010

Weitere ähnliche Inhalte

Was ist angesagt?

Java. Полиморфизм.
Java. Полиморфизм.Java. Полиморфизм.
Java. Полиморфизм.Unguryan Vitaliy
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода выводаmetaform
 
Рефлексия в java
Рефлексия в javaРефлексия в java
Рефлексия в javaUnguryan Vitaliy
 
Java core-lect6-part3-annotation.ppt
Java core-lect6-part3-annotation.pptJava core-lect6-part3-annotation.ppt
Java core-lect6-part3-annotation.pptAnton Moiseenko
 
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Anton Moiseenko
 
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация Unguryan Vitaliy
 
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroJava Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroAnton Moiseenko
 
Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибкиUnguryan Vitaliy
 

Was ist angesagt? (10)

Java. Методы
Java. Методы Java. Методы
Java. Методы
 
Uml
UmlUml
Uml
 
Java. Полиморфизм.
Java. Полиморфизм.Java. Полиморфизм.
Java. Полиморфизм.
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода вывода
 
Рефлексия в java
Рефлексия в javaРефлексия в java
Рефлексия в java
 
Java core-lect6-part3-annotation.ppt
Java core-lect6-part3-annotation.pptJava core-lect6-part3-annotation.ppt
Java core-lect6-part3-annotation.ppt
 
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.
 
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация
 
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroJava Core. Lecture# 1. Intro
Java Core. Lecture# 1. Intro
 
Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибки
 

Andere mochten auch

абстракціонізм2
абстракціонізм2абстракціонізм2
абстракціонізм2home
 
#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)Victor Matyushevskyy
 
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...DEVTYPE
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.YakubovichDA
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеYakubovichDA
 

Andere mochten auch (9)

абстракціонізм2
абстракціонізм2абстракціонізм2
абстракціонізм2
 
#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)
 
Oop - TTm
Oop - TTmOop - TTm
Oop - TTm
 
Составные части объектного подхода
Составные части объектного подходаСоставные части объектного подхода
Составные части объектного подхода
 
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
Базовые принципы и понятия технологии разработки объектно-ориентированных инф...
 
Design patterns part 2
Design patterns part 2Design patterns part 2
Design patterns part 2
 
Python: Модули и пакеты
Python: Модули и пакетыPython: Модули и пакеты
Python: Модули и пакеты
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 

Ähnlich wie принципы ооп и программирование классов в C#

Lec 2 Java
Lec 2 JavaLec 2 Java
Lec 2 Javaitc73
 
слайд питон БОН.pptx
слайд  питон  БОН.pptxслайд  питон  БОН.pptx
слайд питон БОН.pptxHSharipov
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.Igor Shkulipa
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsNoveo
 
Lecture5
Lecture5Lecture5
Lecture5orgil
 
C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.Igor Shkulipa
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.Igor Shkulipa
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.genericsmuqaddas_m
 
C++ осень 2012 лекция 2
C++ осень 2012 лекция 2C++ осень 2012 лекция 2
C++ осень 2012 лекция 2Technopark
 
введение в ооп
введение в оопвведение в ооп
введение в оопdrova10
 
Лекция 6
Лекция 6Лекция 6
Лекция 6itc73
 
Типы данных
Типы данныхТипы данных
Типы данныхMonsterXX
 
C# Web. Занятие 04.
C# Web. Занятие 04.C# Web. Занятие 04.
C# Web. Занятие 04.Igor Shkulipa
 
C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.Igor Shkulipa
 
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.Igor Shkulipa
 
Denys Samoylenko ''JS learning lifehacks: common programmer's mistake''
Denys Samoylenko ''JS learning lifehacks: common programmer's mistake''Denys Samoylenko ''JS learning lifehacks: common programmer's mistake''
Denys Samoylenko ''JS learning lifehacks: common programmer's mistake''OdessaJS Conf
 
Сверточные нейронные сети
Сверточные нейронные сетиСверточные нейронные сети
Сверточные нейронные сетиIvan Kavalerov
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013ScalaNsk
 

Ähnlich wie принципы ооп и программирование классов в C# (20)

Lec 2 Java
Lec 2 JavaLec 2 Java
Lec 2 Java
 
Lec 2
Lec 2Lec 2
Lec 2
 
слайд питон БОН.pptx
слайд  питон  БОН.pptxслайд  питон  БОН.pptx
слайд питон БОН.pptx
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
 
Классы и объекты С#
Классы и объекты С#Классы и объекты С#
Классы и объекты С#
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
 
Lecture5
Lecture5Lecture5
Lecture5
 
C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.generics
 
C++ осень 2012 лекция 2
C++ осень 2012 лекция 2C++ осень 2012 лекция 2
C++ осень 2012 лекция 2
 
введение в ооп
введение в оопвведение в ооп
введение в ооп
 
Лекция 6
Лекция 6Лекция 6
Лекция 6
 
Типы данных
Типы данныхТипы данных
Типы данных
 
C# Web. Занятие 04.
C# Web. Занятие 04.C# Web. Занятие 04.
C# Web. Занятие 04.
 
C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.
 
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
 
Denys Samoylenko ''JS learning lifehacks: common programmer's mistake''
Denys Samoylenko ''JS learning lifehacks: common programmer's mistake''Denys Samoylenko ''JS learning lifehacks: common programmer's mistake''
Denys Samoylenko ''JS learning lifehacks: common programmer's mistake''
 
Сверточные нейронные сети
Сверточные нейронные сетиСверточные нейронные сети
Сверточные нейронные сети
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
 

принципы ооп и программирование классов в C#

  • 1. Объектный подход к проектированию программ Установочная лекция по дисциплине «Высокоуровневые методы информатики и программирования» class Animal Кот Барсик – экземпляр класса Animal
  • 3. Абстрагирование Абстракция фокусируется на существенных с точки зрения наблюдателя характеристиках объекта
  • 6. Как строить абстрактный объект? В окружающем нас мире можно выделить различные группы вещей. Назовем их классами.
  • 7. class Animal { } Класс Animal Animal Barsik; Kind of animal = "Cat" ("Кот"). Height = 50 cm (большой котяра!). Length = 110 cm (это рысь скорее, а не домашняя кошка!). Number of legs = 4. Color = "Black" (черный). Has tail = true (истина). Is mammal = true (истина).
  • 8. Классы и объекты (экземпляры) класса class Animal { string kindOfAnimal; string name; int numberOfLegs; int height; int length; string color; bool hasTail; bool isMammal; bool spellingCorrect; } Animal Barsik; Barsik = new Animal(); Barsik.kindOfAnimal = "Cat"; Barsik.name = "Кот Барсик"; Barsik.numberOfLegs = 4; Barsik.height = 50; Barsik.length = 110; Barsik.color = "Black"; Barsik.hasTail = true; Barsik.isMammal = true;
  • 9. [ атрибуты ] [ спецификаторы ] class имя_класса [ : предки ] тело_класса  Тело класса — список описаний его элементов, заключенный в фигурные  Атрибуты задают дополнительную информацию о классе.  Спецификаторы определяют свойства класса, а также доступность класса ©Павловская Т.А. (СПбГУ ИТМО) Описание класса  Имя класса задается по общим правилам. скобки. для других элементов программы. 9 Простейший пример описания класса: class Demo {} // пустой класс
  • 10. Доступ class Animal { public string kindOfAnimal; public string name; public int numberOfLegs; public int height; public int length; public string color; bool hasTail; protected bool isMammal; private bool spellingCorrect; } Ключ к hasTail не указан???
  • 11. Методы А теперь, используя этот МЕТОД, сложи 2 числа 5 и 3 Сложение двух чисел
  • 12. void Say() { Console.WriteLine(“Myav"); } … Animal Barsik=new Animal (); Barsik.Say()
  • 13. .Net Содержит огромную библиотеку классов, сгруппированных по пространствам имен
  • 14. ©Павловская Т.А. (СПбГУ ИТМО) Пример класса class Monster { public Monster() // конструктор { 14 this.name = "Noname"; this.health = 100; this.ammo = 100; } public Monster( string name ) : this() { this.name = name; } public Monster( int health, int ammo, string name ) { this.name = name; this.health = health; this.ammo = ammo; } public int GetName() // метод { return name; } public int GetAmmo() // метод { return ammo;} public int Health { // свойство get { return health; } set { if (value > 0) health = value; else health = 0; } } public void Passport() // метод { Console.WriteLine( "Monster {0} t health = {1} ammo = {2}", name, health, ammo ); } public override string ToString(){ string buf = string.Format( "Monster {0} t health = {1} ammo = {2}", name, health, ammo); return buf; } string name; // поле int health, ammo; // поле }
  • 16.  ООП позволяет писать гибкие, расширяемые и читабельные  Во многом это обеспечивается благодаря полиморфизму, под которым понимается возможность во время выполнения программы с помощью одного и того же имени выполнять разные действия или обращаться к объектам разного типа.  Чаще всего понятие полиморфизма связывают с механизмом ©Павловская Т.А. (СПбГУ ИТМО) Полиморфизм программы. виртуальных методов. 16 Метод Move (double s, double v)
  • 17.  использование при программировании понятий, близких к  возможность успешно управлять большими объемами исходного кода благодаря инкапсуляции, то есть скрытию деталей реализации объектов и упрощению структуры программы;  возможность многократного использования кода за счет  сравнительно простая возможность модификации программ;  возможность создания и использования библиотек объектов. ©Павловская Т.А. (СПбГУ ИТМО) Достоинства ООП предметной области; наследования; 17
  • 18.  некоторое снижение быстродействия программы, связанное с ©Павловская Т.А. (СПбГУ ИТМО) Недостатки ООП 18 использованием виртуальных методов;  идеи ООП не просты для понимания и в особенности для практического использования;  для эффективного использования существующих объектно- ориентированных систем требуется большой объем первоначальных знаний;  неграмотное применение ООП может привести к значительному ухудшению характеристик разрабатываемой программы.
  • 19. Пример описания классов в С# Общее понятие. Поля, методы, ключи доступа. Конструкторы. 19 Болгарина Е.В., РГППУ, 2010
  • 20. Описание класса class <имя>{ [ private ] <описание скрытых элементов> public <описание доступных элементов> }; 20 Болгарина Е.В., РГППУ, 2010
  • 21. Пример 1. Опишем класс Персона. 1.1. Полями данного класса будут Имя, Возраст, Зарплата. 1.2. Объявим метод вывода на экран информации об объекте. 21 Болгарина Е.В., РГППУ, 2010
  • 22. Создадим 2 объекта (экземпляры класса – Рабочий и Начальник). 22 Болгарина Е.В., РГППУ, 2010
  • 23. В итоге должно получиться следующее: Самостоятельно: Добавьте строки, задающие значения полям объекта boss. Результат работы программы должен быть примерно таким: 23 Болгарина Е.В., РГППУ, 2010
  • 24. Ключи доступа. Изменим ключ доступа к полям с Public на Private 24 Болгарина Е.В., РГППУ, 2010
  • 25. Определение метода вне класса. В примере метод Show_information определен внутри класса. Но при большом количестве методов такой способ сделает описание класса слишком громоздким. Поэтому чаще всего в описании класса ограничиваются объявлением метода, а его реализацию описывают ниже. 25 Болгарина Е.В., РГППУ, 2010
  • 26. Конструкторы.  Для создания объектов класса с инициализацией полей.  Конструктор всегда имеет такое же имя, как и класс.  Конструктор не возвращает никаких значений.  При создании объектов программа каждый раз будет вызывать описанный конструктор.  Конструкторов может быть несколько, в зависимости от того, какие из параметров вы хотите инициализировать. 26 Болгарина Е.В., РГППУ, 2010
  • 27. Опишем конструктор для класса Person: 27 Болгарина Е.В., РГППУ, 2010
  • 28. Теперь создавать объекты в теле главной процедуры будем с помощью Конструктора. 28 Болгарина Е.В., РГППУ, 2010
  • 29. Результат: 29 Болгарина Е.В., РГППУ, 2010
  • 30. Конструкторы по умолчанию 30 Болгарина Е.В., РГППУ, 2010
  • 31. конструктор с пустыми полями 31 Болгарина Е.В., РГППУ, 2010
  • 32. Обращение к закрытым полям класса.  Принцип сокрытия информации (инкапсуляция) предоставляет программе минимум информации по работе с классом.  Изменение полей класса возможно только через использование методов самого класса.  Создадим открытые, т.е. доступные программе методы по управлению полями класса Person:  Метод изменения зарплаты change_salary;  Метод вывода возраста get_age; 32 Болгарина Е.В., РГППУ, 2010
  • 33. 33 Болгарина Е.В., РГППУ, 2010
  • 34. 34 Болгарина Е.В., РГППУ, 2010
  • 35. 35 Болгарина Е.В., РГППУ, 2010
  • 36. Лабораторная работа Индивидуальные задания: 1.Описать класс Aeroflot, содержащую закрытые поля: название пункта назначения рейса, номер рейса, тип самолета. Описать конструкторы без параметров и с различным числом параметров. Описать открытые методы Вывод информации, Замена номера рейса. Создать несколько объектов (не менее 3х) и продемонстрировать работу созданных методов. 2. Описать класс Price, содержащий следующие поля: название товара, название магазина, в котором продается товар, количество товара, стоимость единицы товара. Описать конструкторы без параметров и с различным числом параметров. Описать открытые методы Вывод информации, Замена стоимости товара. Создать несколько объектов (не менее 3х) и продемонстрировать работу созданных методов. Определить общую стоимость товара в определенном магазине. 36 Болгарина Е.В., РГППУ, 2010