Классы. Объектно-ориентированное программирование
Классы и объекты
По сути класс представляет новый тип, который определяется пользователем. Класс определяется с помощью ключевого слова сlass:
1 2 3 4 | class название_класса{ // содержимое класса} |
После слова class идет имя класса и далее в фигурных скобках идет собственно содержимое класса. Например, определим в файле Program.cs класс Person, который будет представлять человека:
1 2 3 4 | class Person{ } |
Поля и методы класса
Класс может хранить некоторые данные.
Для хранения данных в классе применяются поля. По сути поля класса - это переменные, определенные на уровне класса.
Кроме того, класс может определять некоторое поведение или выполняемые действия.
Для определения поведения в классе применяются методы.
Итак, добавим в класс Person поля и методы:
1 2 3 4 5 6 7 8 9 10 | class Person { public string name = "Undefined"; // имя public int age; // возраст public void Print() { Console.WriteLine($"Имя: {name} Возраст: {age}"); }} |
В данном случае в классе Person определено поле name, которое хранит имя, и поле age, которое хранит возраст человека.
В отличие от переменных, определенных в методах, поля класса могут иметь модификаторы, которые указываются перед полем. Так, в данном случае, чтобы все поля были доступны вне класса Person поля определены с модификатором public.
При определении полей мы можем присвоить им некоторые значения, как в примере выше в случае переменной name. Если поля класса не инициализированы, то они получают значения по умолчанию. Для переменных числовых типов это число 0.
Также в классе Person определен метод Print(). Методы класса имеют доступ к его поля, и в данном случае обращаемся к полям класса name и age для вывода их значения на консоль. И чтобы этот метод был виден вне класса, он также определен с модификатором public.
Создание объекта класса
После определения класса мы можем создавать его объекты. Для создания объекта применяются конструкторы. По сути конструкторы представляют специальные методы, которые называются так же как и класс, и которые вызываются при создании нового объекта класса и выполняют инициализацию объекта. Общий синтаксис вызова конструктора:
1 | new конструктор_класса(параметры_конструктора); |
Сначала идет оператор new, который выделяет память для объекта, а после него идет вызов конструктора.
Конструктор по умолчанию
Если в классе не определено ни одного конструктора (как в случае с нашим классом Person), то для этого класса автоматически создается пустой конструктор по умолчанию, который не принимает никаких параметров.
Теперь создадим объект класса Person:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Person tom = new Person(); // создание объекта класса Person// определение класса Personclass Person { public string name = "Undefined"; public int age; public void Print() { Console.WriteLine($"Имя: {name} Возраст: {age}"); }} |
Для создания объекта Person используется выражение new Person().
В итоге после выполнения данного выражения в памяти будет выделен участок, где будут храниться все данные объекта Person.
А переменная tom получит ссылку на созданный объект, и через эту переменную мы можем использовать данный объект и обращаться к его функциональности.
ля обращения к функциональности класса - полям, методам (а также другим элементам класса) применяется точечная нотация точки - после объекта класса ставится точка, а затем элемент класса:
1 2 | объект.поле_классаобъект.метод_класса(параметры_метода) |
Например, обратимся к полям и методам объекта Person:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | Person tom = new Person(); // создание объекта класса Person// Получаем значение полей в переменныеstring personName = tom.name;int personAge = tom.age;Console.WriteLine($"Имя: {personName} Возраст {personAge}"); // Имя: Undefined Возраст: 0// устанавливаем новые значения полейtom.name = "Tom";tom.age = 37;// обращаемся к методу Printtom.Print(); // Имя: Tom Возраст: 37class Person { public string name = "Undefined"; public int age; public void Print() { Console.WriteLine($"Имя: {name} Возраст: {age}"); }} |
Консольный вывод данной программы:
Имя: Undefined Возраст: 0 Имя: Tom Возраст: 37
Комментариев нет:
Отправить комментарий