Классом называется фрагмент кода, которому предшествует зарезервированное слово class. Членами класса могут быть данные (они называются полями) и подпрограммы (они называются методами). По своей сути класс — это тип, то есть образец для создания объектов (так называются переменные типа класса).
Любой класс базируется на трех основополагающих принципах: инкапсуляции, наследовании и полиморфизме.
Инкапсуляцией называется способность объектов «прятать» детали своей внутренней организации от пользователей. Например, в классе System.Console есть методы ReadLine() и WriteLine(), предназначенные соответственно для ввода и вывода строк. В следующем фрагменте показано использование этих методов:
string S;
Console.WriteLine("Введите ваше имя:");
Console.ReadLine(S);
Как видите, мы совершенно не знаем программной реализации методов, но мы знаем, для чего они предназначены, и легко пользуемся ими. За счет инкапсуляции программирование становится проще: нам не нужно думать об огромном количестве строк кода, которые выполняют нужную работу скрыто от нас.
Другое преимущество инкапсуляции — возможность скрыть внутренние данные (поля) объекта. Как правило, при описании класса поля помечаются зарезервированным словом private, В результате доступ к ним становится возможен только с помощью открытых методов класса.
Наследование — это способность классов порождать себе подобные классы-наследники. Наследник получает от родительского класса все его сущности (поля, методы, свойства, делегаты) и может дополнять их своими, придающими наследнику дополнительную функциональность по сравнению с родительским классом. Такой подход способствует поэтапному созданию новых классов.
Например, общий родительский класс Object определяет общие для всех классов методы, такие как Equals(), GetType(), ToString() и т. д. (см. табл. 1.1 в главе 1). Если мы создаем новые классы для, например, управления геометрическими фигурами, то полезно предварительно создать промежуточный класс GeomethricShape, унаследовав его от Object и определив в нем поля и методы, специфичные для всех геометрических фигур. Например, поля Х и Y, определяющие положение фигуры на экране, методы Show(), Hide(), Draw() и MoveTo(), предназначенные соответственно для показа фигур, их стирания, отрисовки и перемещения в новую точку.
Полиморфизмом называется способность родственных (то есть имеющих общий родительский класс) объектов решать схожие по смыслу проблемы разными способами. Для этого в каждом классе-потомке следует переопределить нужный родительский метод. Например, для классов Circle, Line или Rectangle, являющихся наследниками класса GeomethricShape (см. ранее), следует переопределить родительский метод Draw(), ответственный за отрисовку фигур, чтобы нарисовать соответственно окружность, линию или прямоугольник.
0 коммент.:
Отправить комментарий