Читаем C#. Объектно ориентированное программирование полностью

ПРИМЕЧАНИЕ Это не всегда так. Есть классы, которые представляют интерес сами

по себе, без всяких там объектов. Обычно это классы со статическими

методами, которые играют роль библиотеки.

В этой главе мы расширим свои познания в области создания классов.

Классы могут быть самыми разными, но нас пока интересуют наиболее

простые варианты. В ближайшем будущем мы будем использовать следую-

щий шаблон для создания классов:

class имя_класса{

public тип_поля имя_поля;

public тип_результата имя_метода(аргументы){

// код метода

}

}

ПРИМЕЧАНИЕ Члены класса (в данном случае поля и методы) могут быть закрытыми

и открытыми. Закрытые члены класса — это члены, которые класс

приберегает «для себя», то есть для использования исключительно

в пределах класса. Открытые члены класса можно использовать не

только внутри класса, но и вне его. Именно такие члены класса пока

что нас и будут интересовать.

Блок с кодом класса начинается ключевым словом class, после которого

указывается имя класса, а тело класса заключается в фигурные скобки.

Собственно класс — то, что находится в фигурных скобках. А в скобках

может находиться описание полей и методов (и некоторых членов класса).

Поля описываются как обычные переменные: указывается тип переменной

и ее имя. Описание метода выполняется по такому шаблону:

 идентификатор типа результата — ключевое слово, которое определяет

тип значения, возвращаемого методом в качестве результата;

 имя метода;

Описание класса           55

 в круглых скобках указывается список аргументов. Аргументы пере-

числяются через запятую, для каждого аргумента указывается тип. Если

аргументов нет, скобки все равно есть — пустые;

 программный код метода (тело метода) заключается в фигурные скобки.

И поля, и методы описываются с ключевым словом public, что означает их

доступность за пределами класса.

В качестве иллюстрации рассмотрим программный код с описанием клас-

са, представленный в листинге 2.1.

Листинг 2.1.  Класс с полем и двумя методами

class MyClass{

// Поле класса:

public string name;

// Метод класса для присваивания "имени":

public void SetName(string arg){

// Присваиваем значение полю name:

name=arg;

// Отображаем сообщение об изменении

// значения поля name:

Console.WriteLine("Присвоено значение полю name.");

}

// Метод класса для отображения "имени":

public void ShowName(){

// Отображаем сообщение со значением

// поля name:

Console.WriteLine("Значение поля name: "+name);

}

}

Наш класс называется MyClass. У класса одно поле и два метода. Поле называ-

ется name, и это поле текстовое — оно объявляется как переменная типа string.

Что касается методов, то оба они не возвращают результат. Поэтому в каче-

стве идентификатора типа результата использовано ключевое слово void.

У метода SetName() один текстовый аргумент (объявлен как string arg).

В теле метода командой name=arg полю name присваивается значение, как у ар-

гумента arg. Затем командой Console.WriteLine("Присвоено значение полю

name.") в консоль выводится сообщение с информацией о том, что значе-

ние поля name изменено.

У метода ShowName() аргументов нет. Единственной командой Console.

Write Line("Значение поля name: "+name) в теле метода отображается кон-

сольное сообщение с информацией о значении поля name.

56

Глава 2. Классы и объекты

ПРИМЕЧАНИЕ В методах почти массово используется обращение к полю name. Ре-

зонным образом возникает вопрос, о поле name какого объекта идет

речь? Ведь у каждого объекта класса есть поле name. Поэтому сколько

объектов класса, столько разных полей, и каждое называется name.

Но проблемы здесь на самом деле нет — обращение выполняется

к полю того объекта, из которого вызывается метод.

На этом описание класса заканчивается, и остается лишь проверить, какая

от этого класса может быть польза. Нам предстоит несколько расширить

программный код. Он будет содержать не только описание класса, но и ин-

струкции по созданию объектов на основе этого класса.

Объектные переменные

и создание объектов

Очень убедительно. Мы подумаем,

к кому это применить.

Из к/ф «31 июня»

Нам предстоит еще одно усилие на пути изучения классов — мы будем

создавать объекты. В C# процедура создания объекта (в широком смысле

этого понятия) имеет некоторые особенности, если сравнивать, например, с созданием обычной переменной (не объекта). Условно процесс создания

объекта можно разбить на два этапа:

 создание объектной переменной;

 создание объекта с присваиванием значения объектной переменной.

Строго  говоря,  при  создании  объекта  указывается  не  имя  класса, а конструктор класса. Конструктор класса — это такой специальный

метод. Одна из его особенностей состоит в том, что имя конструктора

совпадает с именем метода. Даже если мы конструктор в классе не

описывали, он все равно существует — это так называемый конструк-

тор по умолчанию. У такого конструктора нет аргументов — отсюда

и пустые круглые скобки после имени класса в инструкции создания

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных