Помимо рабочего программного кода, из этого раздела мы узнали одну
принципиальную вещь. На ближайшее время все программные коды, ко-
торые мы будем составлять, соответствуют следующему шаблону: using простарнство_имен;
class имя_класса{
static void Main(){
// программный код
}
}
34
Глава 1. Информация к размышлению: язык C# и даже больше
Собственно, все, что нам нужно сделать для составления кода програм-
мы, — это указать имя класса и непосредственно код программы — код
метода Main(). Ну, конечно, еще подключить необходимые простран-
ства имен.
ПРИМЕЧАНИЕ Хотя главный метод программы должен называться Main(), его атри-
буты могут незначительно варьироваться. Например, метод может
возвращать целочисленный результат или принимать аргументы (па-
раметры командной строки).
Несколько слов об ООП
— Ученый совет должен быть в полном составе!
— Кота ученого приглашать будем?
Из к/ф «Чародеи»
Чтобы прочувствовать всю прелесть языка C#, необходимо иметь хотя бы
общее представление об основных принципах ООП, поскольку именно
принципы ООП реализуются в C# по полной программе. И здесь сразу
необходимо отметить, что ООП, строго говоря, появилось не от хорошей
жизни. Главная причина перехода от парадигмы процедурного программи-
рования к концепции ООП произошла, как это ни странно, для того, чтобы
программистам легче и проще было создавать и читать программные коды.
Обычно новшества появляются в ответ на некоторую проблему. Возникает
вопрос: ответом на какую проблему является появление ООП? Проблема
банальная — в какой-то момент объем программных кодов настолько уве-
личился, что держать все под контролем стало практически нереальным.
Что такое программа? Это, по сути, набор инструкций о том, какие дан-
ные и какими методами обрабатывать. Если и данных, и функций для их
обработки много, несложно во всей этой кухне запутаться. Главная идея
ООП как раз и состоит в том, чтобы объединить данные и функции для их
обработки на одном из базовых уровней — на уровне тех «строительных
блоков», из которых создается программа. Эта идея (идея объединения
в одно целое данных и программного кода для их обработки) называется
инкапсуляцией. Вообще же ООП базируется на трех «китах»:
инкапсуляция;
полиморфизм;
наследование.
Несколько слов об ООП 35
Инкапсуляция проявляет себя во всей красе в виде концепции классов
и объектов. Мы уже обсуждали особенности классов и объектов. Здесь
снова напомним, как они соотносятся: класс является описанием объекта
и полностью определяет содержимое и поведение объекта. Объект созда-
ется на основе класса. Таким образом, в объекте «спрятаны» данные и про-
граммный код методов, которые имеют доступ к этим данным и могут их
обрабатывать. Объекты также взаимодействуют друг с другом. На первый
взгляд такой подход может показаться искусственно усложненным и даже
где-то неприятным, но это только первое впечатление. Впоследствии мы
убедимся, что с классами и объектами работать просто и приятно.
Чтобы понять всю эту небесную механику с классами и объектами, нам
предстоит к классам и объектам привыкнуть (это раз) и научиться ими
пользоваться (это два). Привыкать мы уже начали, а пользоваться
научимся.
Что касается полиморфизма, здесь главная идея состоит в том, чтобы уни-
фицировать однотипные действия, сведя к минимуму количество исполь-
зуемых методов. На практике это сводится к тому, что методы, выполняю-
щие схожие действия, называются одним именем, даже если действия эти
выполняются над данными разных типов.
ПРИМЕЧАНИЕ Полиморфизм базируется на перегрузке и переопределении методов.
Эти нехитрые процедуры мы будем обсуждать позже.
Термин « наследование» достаточно точно характеризует себя. Если кратко, то благодаря наследованию новые классы можно создавать на основе уже
существующих. Это очень сильно экономит время и силы, а также повы-
шает устойчивость и совместимость программного кода. Каждый из упо-
мянутых трех механизмов мы будем исследовать, только, быть может, без
прямого упоминания красивых и загадочных названий этих механизмов.
Ведь инкапсуляция, полиморфизм и наследование — это лишь общие идеи.