КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Советы по использованию уровня доступаОбычно область доступа полей класса делают закрытой (private), т.е. доступ к ним разрешается только методам того же класса. Чтобы предоставить пользователям класса значения его полей, используются свойства: они позволяют классу контролировать изменение его полей, например проверять принадлежность заданного значения диапазону допустимых значений. Когда доступ к полю инкапсулируется процедурами свойства, возможно обновлять код, обрабатывающий изменения значения этого свойства, не нарушая совместимость с существующими пользователями класса. Поэтому принято создавать свойства для доступа к полям класса даже тогда, когда на начальном этапе разработки не требуется никакой дополнительной обработки присваиваемых полю значений. Примеры использования: /// <summary> /// Класс комплексного числа /// </summary> class Complex { /// <summary> /// Целая часть числа /// </summary> private double re; /// <summary> /// Мнимая часть числа /// </summary> private double im; /// <summary> /// Конструктор с инициализацией /// </summary> public Complex(double i_re, double i_im) { re = i_re; im = i_im; } /// <summary> /// Целая часть числа /// </summary> public double RE { get { return re; } set { re = value; } } /// <summary> /// Мнимая часть числа /// </summary> public double IM { get { return im; } set { im = value; } } } Пример работы с классом: Complex complex1 = new Complex(1, 1);
Complex complex2 = new Complex(); complex2.IM = 2; complex2.RE = 2;
complex1.RE = complex2.RE;
«Паблик Морозов» Паблик Морозов — в объектно-ориентированном программировании шуточное название класса-потомка, который обеспечивает открытый доступ к закрытым полям класса-предка. Наличие объектов типа «Паблик Морозов» говорит об избыточно закрытой конструкции библиотеки — или даже об инверсии абстракции в ней. Это название — каламбур, основанный на созвучии ключевого слова public (паблик), часто означающего открытый доступ к методам и полям класса, и имени пионера-героя Павлика Морозова, известного тем, что он выдал своего отца-кулака. Абстрактный метод Если в процессе проектирования необходимо для родительского класса указать метод, который будет реализован в классах – потомках, но его реализация в родительском классе не нужна, то он объявляется как абстрактный. Другими словами: абстрактный метод не имеет реализации при объявлении. Пример объявления абстрактного метода: public class Parent { public abstract float Calculate(float parValue); }
|