Слайд 2Класс
- производный (агрегатный) тип данных, введённый программистом на основе уже существующих типов,
![Класс - производный (агрегатный) тип данных, введённый программистом на основе уже существующих](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-1.jpg)
характеризующийся объединением разнотипных данных и программного кода для их обработки
Слайд 3Класс - тип данных
int
double
bool
…
класс1
класс2
![Класс - тип данных int double bool … класс1 класс2](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-2.jpg)
Слайд 4Состав класса
Члены класса – составляющие класс атомарные единицы
Данные класса – переменные внутри
![Состав класса Члены класса – составляющие класс атомарные единицы Данные класса –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-3.jpg)
класса
Методы класса – программный код для обработки данных (не всегда)
Слайд 5Определение класса
class ИмяКласса
{
доступ тип имя;
доступ тип имя(параметры)
оператор;
}
![Определение класса class ИмяКласса { доступ тип имя; доступ тип имя(параметры) оператор; }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-4.jpg)
Слайд 6Спецификаторы доступа
public – доступен из любой точки программы
private – доступен только внутри
![Спецификаторы доступа public – доступен из любой точки программы private – доступен](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-5.jpg)
этого же класса
protected – доступен внутри этого же класса и его наследников
Слайд 7Простейший пример
class Human
{
public string FName, LName;
public int BirthYear;
}
![Простейший пример class Human { public string FName, LName; public int BirthYear; }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-6.jpg)
Слайд 8Дубль два: класс – тип данных!
int = 5; // Так не бывает!
int
![Дубль два: класс – тип данных! int = 5; // Так не](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-7.jpg)
Radius;
Radius = 5;
Human Vasya;
Vasya = ????
Слайд 9Объекты
Переменная, у которой тип данных какой-либо класс – объект (экземпляр класса)
В C#
![Объекты Переменная, у которой тип данных какой-либо класс – объект (экземпляр класса)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-8.jpg)
объекты доступны только косвенно – через ссылки
Слайд 10Создание ссылки и объекта
// Всегда в два этапа!
Human Vasya; // ссылка
Vasya =
![Создание ссылки и объекта // Всегда в два этапа! Human Vasya; //](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-9.jpg)
new Human(); // новый объект
// ссылке присваивается адрес
Human Vasya = new Human();
Слайд 11Представление в памяти
Vasya
Petya
![Представление в памяти Vasya Petya](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-10.jpg)
Слайд 12Заполнение данных объекта
Human Vasya = new Human();
Vasya.FName = “Василий”;
Vasya.LName = “Иванов”;
Vasya.BirthYear =
![Заполнение данных объекта Human Vasya = new Human(); Vasya.FName = “Василий”; Vasya.LName](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-11.jpg)
2001;
Слайд 13Заполнение данных объекта
Human Petya = new Human();
Petya.FName = “Петров”;
Petya.LName = “Пётр”;
Petya.BirthYear =
![Заполнение данных объекта Human Petya = new Human(); Petya.FName = “Петров”; Petya.LName](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-12.jpg)
2003;
Слайд 14Данные класса == переменные
Radius = 5;
Petya.BirthYear = 2003;
Console.WriteLine( Radius );
Console.WriteLine( Petya.BirthYear );
![Данные класса == переменные Radius = 5; Petya.BirthYear = 2003; Console.WriteLine( Radius ); Console.WriteLine( Petya.BirthYear );](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1158550/slide-13.jpg)