Шаг 81.
Язык программирования C#. Начала
Знакомство с классами и объектами. Использование объектов

    На этом шаге мы рассмотрим пример программы, где используются объекты.

    Далее мы все, что было описано на предыдущих шагах, используем на практике. В программе описывается класс MyClass, в котором есть два поля (целочисленное number и символьное symbol), а также метод show(), которым отображаются значения полей. В главном методе программы на основе класса MyClass создается два объекта (А и В), полям объектов присваиваются значения, а с помощью метода show() значения полей объектов выводятся в консольное окно. Соответствующая программа приведена ниже.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace pr81_1
{
    // Описание класса:
    class MyClass {
        // Целочисленное поле: 
        public int number;
        // Символьное поле: 
        public char symbol;
        // Метод:
        public void show(){
            // Отображение значения целочисленного поля: 
            Console.WriteLine("Целочисленное поле: " + number); 
            // Отображение значения символьного поля:
            Console.WriteLine("Символьное поле: " + symbol);
        }
    }

    // Класс с главным методом: 
    class Program
    {
        // Главный метод:
        static void Main()
        {
            // Первый объект:
            MyClass A = new MyClass();
            // Объектная переменная:
            MyClass B;
            // Второй объект:
            B = new MyClass();
            // Присваивание значений полям первого объекта: 
            A.number = 123;
            A.symbol = 'А';
            // Присваивание значений полям второго объекта:
            B.number = 321;
            B.symbol = 'B';
            // Вызов методов:
            Console.WriteLine("Первый объект");
            A.show();
            Console.WriteLine("Второй объект");
            B.show();
            // Задержка:
            Console.ReadLine();
        }
    }
}
Архив проекта можно взять здесь.

    Результат выполнения программы такой.


Рис.1. Результат выполнения программы

    В программе, кроме класса с главным метолом программы, описан еще и класс MyClass. В методе Main() создаются объекты этого класса. Их всего два. Первый объект создается командой

  MyClass A = new MyClass();   . 

    В данном случае объявляется объектная переменная А класса MyClass и ей значением присваивается ссылка на объект, который создается инструкцией new MyClass(). Со вторым объектом ситуация немного иная. Сначала командой

  MyClass B;
объявляется объектная переменная в класса MyClass. Создание объекта и присваивание ссылки на этот объект переменной В выполняется отдельной командой
  B = new MyClass();          .

    После того как объекты А и В созданы, их полям присваиваются значения. Значения полям объекта А присваиваем командами

  A.number = 123;
и
  A.symbol = 'А';           . 

    Полям объекта В значения присваиваются с помощью команд

  B.number = 321;
и
  B.symbol = 'B';            . 

    Для проверки значений полей объектов А и В используем соответственно команды

  A.show();
и
  B.show();     .

    Этими командами из объектов А и В вызывается метод show(). В классе MyClass метод описан таким образом, что им в консольное окно выводятся значения полей number и symbol. Объект, к которому относятся эти поля, в описании метода в классе MyClass явно не указан. В таком случае подразумеваются поля того объекта, из которого вызывается метод. Это и происходит на практике: при вызове метода show() из объекта А отображаются значения полей объекта А, а при вызове метода show() из объекта В отображаются значения поле объекта В.


В главном методе программы обращение к полям и методам объектов выполняется в виде A.number, В.symbol, A.show() и так далее. Это возможно, поскольку поля number и symbol, а также метод show() в классе MyClass описаны с ключевым словом public - то есть поля и методы являются открытыми. Если бы они не были открытыми, то в главном методе программы мы не смогли бы напрямую обратиться к полям и методу объектов, созданных на основе класса MyClass.

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг