Классы
ООП – технология разработки сложного программного обеспечения, в которой программа строится в виде совокупности объектов и их взаимосвязей.
ООП характеризуется тремя основными принципами:
- Инкапсуляция – объединение в одном объекте данных и методов их обработки.
- Наследование – создание новых объектов на базе ранее определенных. Новые объекты – потомки – сохраняют свойства своих родителей и обладают специфическими свойствами.
- Полиморфизм – возможность замещения методов объекта родителя одноименными методами объекта-потомка.
Технология ООП запрещает работать с объектом иначе, чем через методы, то есть внутренняя структура объекта скрыта от внешнего пользователя. В программе для представления объекта используется понятие класса.
Классы
Класс является абстрактным типом данных, определяемым пользователем и представляет собой модель реального объекта в виде данных и функций для работы с данными. Данные класса называются полями, а функции, работающие с данными, методами.
Формат описания класса:
спецификатор class имя_класса { тело_класса }
Спецификатор | Описание |
new | Задает новое описание класса |
public | Доступ к классу не ограничен |
protected | Доступ только из данного или производного класса |
internal | Доступ только из данной программы (сборки) |
protected internal | Доступ только из данного или производного класса и из данной программы (сборки) |
private | Доступ только из элементов класса |
static | Статический класс. Позволяет обращаться к методам класса без создания экземпляра класса |
sealed | Бесплодный класс. Запрещает наследование данного класса |
abstract | Абстрактный класс. Применяется в иерархии объектов |
- По умолчанию элементы класса считаются закрытыми private.
- Поля, описанные со спецификатором static, а также константы, существуют в единственном экземпляре для всех объектов класса, поэтому к ним обращаются не через имя экземпляра, а через имя класса.
- Методы находятся в памяти в единственном экземпляре и используются всеми объектами одного класса совместно.
- Конструктор экземпляра для статического класса задавать запрещается.
После определения класса мы можем объявлять переменные типа этого класса, называемые объектами.
Имя_класса имя_объекта = new конструктор;
Для обращения к элементам класса (как к данным, так и к функциям) используют оператор точку.