Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Советы по использованию уровня доступа




Обычно область доступа полей класса делают закрытой (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);

}

 


Поделиться:

Дата добавления: 2015-09-15; просмотров: 105; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты