![]() КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Структура классаВ качестве основных составляющих класса (общих для всех объектно-ориентированных языков программирования) являются: · Поля. В полях хранятся данные класса. Все данные объекта хранятся в его полях. Доступ к полям осуществляется по их имени; Определение поля выглядит следующим образом: class Parent { int _value; } В данном примере объявлено поле класса с именем «_value» с типом int Обычно каждому объекту соответствуют собственные значения всех его полей. Можно объявить поле, которое будет единым для всех экземпляров класса. Такие поля называются статическими. Внутри класса к данному полю можно обращаться по его имени. Снаружи класса для доступа к полю необходимо обращаться через имя класса. Определение статического поля выглядит следующим образом: class Parent { static int _value; } Обращение к статическому полю, не внутри класса выглядит следующим образом: Parent._value = 10;
· Свойства.Свойства необходимы для того, чтобы управлять доступом к полям класса. При проектировании классов необходимо иметь возможность управлять процессом установки значений полям класса, которые делаются как из других, так и из дочерних классов. Определение свойства для поля выглядит следующим образом: class Parent { int _value; int Value { get { Return _value; } set { _value = value; } } } В данном примере, в разделе «get» возвращается значение свойства, а в разделе «set» устанавливается. Один из разделов может отсутствовать, тогда свойство будет либо только на чтение, либо только на запись. То, что возврат и установка значений делается в блоке кода, даёт возможность контроля за значениями. · Методы. Методы позволяют управлять данными класса и производить различные вычисления. Определение метода выглядит следующим образом: class Parent { int _value; int Calculate(int parAmount) { return _value + parAmount; } } В данном примере объявлено поле класса с именем «_value» с типом int · Конструктор. Специальный метод класса в объектно-ориентированном программировании, служащий для инициализации объекта при его создании. Конструктором класса называется функция, имеющая то же имя, что и сам класс, и не возвращающая никакого значения. Говоря более простым языком, конструктором называется тот метод класса, который вызывается автоматически при создании экземпляра класса. Имя конструктора должно совпадать с именем класса. Допускается использовать несколько конструкторов с одинаковым именем, но различными параметрами. Определение конструктора выглядит следующим образом: class Parent { Parent() { } } Различают следующие, основные, виды конструкторов: o Конструктор по умолчанию.Конструктор не имеющий аргументов. В отсутствие явно заданного конструктора по умолчанию его код генерируется компилятором (что в исходном тексте, не отражается). Пример конструктора по умолчанию указан выше; o Конструктор копирования. Конструктор, аргументом которого является ссылка на объект того же класса. Используется, если при создании нового объекта, в него нужно скопировать данные из другого, аналогичного типа. Определение конструктора копирования выглядит следующим образом: class Parent { int _value = 0; Parent(Parent parParentCopy) { _value = parParentCopy._value; } }
· Деструктор. Специальный метод класса, служащий для деинициализации объекта (например освобождения памяти). Имя деструктора должно совпадать с именем класса и иметь префикс ~. У класса может быть только один деструктор. Деструктор не имеет модификатора доступа и параметров. Определение деструктора выглядит следующим образом: class Parent { ~Parent() { } }
|