Павел Павлов - Scala для профессионалов - Joker 2013
принципы ооп и программирование классов в C#
1. Объектный подход к проектированию
программ
Установочная лекция по дисциплине «Высокоуровневые методы
информатики и программирования»
class
Animal
Кот Барсик – экземпляр класса Animal
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;
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
Сложение двух чисел
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
32. Обращение к закрытым полям класса.
Принцип сокрытия информации (инкапсуляция)
предоставляет программе минимум информации по
работе с классом.
Изменение полей класса возможно только через
использование методов самого класса.
Создадим открытые, т.е. доступные программе
методы по управлению полями класса Person:
Метод изменения зарплаты change_salary;
Метод вывода возраста get_age;
32 Болгарина Е.В., РГППУ, 2010
36. Лабораторная работа
Индивидуальные задания:
1.Описать класс Aeroflot, содержащую закрытые поля: название пункта
назначения рейса, номер рейса, тип самолета.
Описать конструкторы без параметров и с различным числом параметров.
Описать открытые методы Вывод информации, Замена номера рейса.
Создать несколько объектов (не менее 3х) и продемонстрировать работу
созданных методов.
2. Описать класс Price, содержащий следующие поля: название товара,
название магазина, в котором продается товар, количество товара, стоимость
единицы товара.
Описать конструкторы без параметров и с различным числом параметров.
Описать открытые методы Вывод информации, Замена стоимости товара.
Создать несколько объектов (не менее 3х) и продемонстрировать работу
созданных методов.
Определить общую стоимость товара в определенном магазине.
36 Болгарина Е.В., РГППУ, 2010