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

объекта. Мы расставим все точки над i в вопросе создания объектов

после  того,  как  поближе  познакомимся  с  конструкторами,  интер-

фейсами и наследованием. Другими словами, вопрос этот не такой

тривиальный, как может показаться на первый взгляд.

Объектная переменная создается абсолютно так же, как и «необъектная»

переменная, с той лишь разницей, что в качестве идентификатора типа

Объектные переменные и создание объектов           57

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

Например, чтобы создать объектную переменную с именем obj для класса

MyClass, можем воспользоваться командой MyClass obj. Однако объектная

переменная — это еще не объект (хотя именно с помощью объектной пере-

менной мы будем обращаться к объекту и выполнять с ним все основные

операции). Для создания непосредственно объекта используем оператор

new. Чтобы было понятно, какого класса объект создается, после оператора

new указывается имя класса с пустыми круглыми скобками.

Например, для создания объекта класса MyClass можно воспользоваться

инструкцией new MyClass(). Использование такой инструкции имеет два

важных следствия:

 во-первых, создается объект класса MyClass;

 во-вторых, в качестве результата возвращается адрес этого объекта, или

ссылка на объект.

Если есть результат, то его обычно куда-то записывают. Адреса объектов

(ссылки на объект) записывают в объектные переменные (обычно класс

объектной переменной должен совпадать с классом объекта). Собственно, объектная переменная и создается для того, чтобы в нее записать ссылку на

объект. В этом смысле вполне логичными могли бы быть такие команды: MyClass obj;

obj=new MyClass();

Благодаря этим двум инструкциям в наше распоряжение поступает объект

класса MyClass, доступ к которому мы имеем через переменную obj. В даль-

нейшем, если это не будет приводить к недоразумениям, под объектом мы

будем подразумевать как раз объектную переменную.

ПРИМЕЧАНИЕ Инструкции по созданию объектной переменной и объекта можно

объединить в одну — совместить объявление объектной перемен-

ной и создание объекта. Так, альтернативой командам MyClass obj и  obj=new  MyClass()  может  быть  одна-единственная  команда

MyClass obj=new MyClass().

Теперь мы практически готовы к тому, чтобы применить объекты на прак-

тике. Расправим наши крылья, воспользовавшись программным кодом, представленным в листинге 2.2.

Листинг 2.2.  Название листинга

using System;

class MyClass{

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

public string name;

продолжение

58

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

Листинг 2.2 (продолжение)

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

public void SetName(string arg){

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

name=arg;

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

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

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

}

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

public void ShowName(){

// Отображаем сообщение со значением поля name:

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

}

}

// Класс с методом Main():

class ObjDemo{

// Главный метод программы:

public static void Main(){

// Объектная переменная класса MyClass:

MyClass cat;

// Создание объекта класса MyClass:

cat=new MyClass();

// Создание объекта и переменной класса MyClass:

MyClass dog=new MyClass();

// Полю name объекта cat присваивается значение:

cat.name="Мурчик";

// Полю name объекта dog присваивается значение:

dog.SetName("Шарик");

// Отображается значение поля name объекта cat:

cat.ShowName();

// Отображается значение поля name объекта dog:

dog.ShowName();

Console.ReadLine();

}

}

Метод  Main()  мы  описали  с  атрибутом  public.  Здесь  мы  последо-

вали  общей  рекомендации:  описывать  главный  метод  программы

как открытый. Вместе с тем и без этого атрибута программа будет

работать.

Это полный программный код, в котором, помимо уже знакомого нам

класса MyClass, есть еще один класс, ObjDemo, в котором описан метод

Объектные переменные и создание объектов           59

Main(). В этом методе, в свою очередь, создаются и используются объек-

ты класса MyClass. Поскольку программный код класса MyClass мы уже

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

Main(). Вкратце сюжет пьесы такой. Создается два объекта cat и dog клас-

са MyClass. Полям name этих объектов присваиваются значения, после чего

значения этих полей выводятся в консоль. Объект cat создается в два

этапа. Сначала командой MyClass cat объявляется объектная переменная

класса MyClass. Непосредственно создание объекта класса MyClass и при-

сваивание ссылки на этот объект переменной cat выполняется командой

cat=new MyClass(). Создание второго объекта выполняется с помощью ко-

манды MyClass dog=new MyClass(). Здесь и объектная переменная создает-

ся, и объект, и ссылка на объект присваивается объектной переменной.

На следующем витке эволюции полям новоиспеченных объектов при-

сваиваются значения. Для объекта cat мы используем простую прямую

команду cat.name="Мурчик". Здесь мы встречаемся с примером точечного

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

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

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

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

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

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

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

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

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