Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2 2015.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
221.17 Кб
Скачать

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

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

}

Абстрактный класс

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

Пример объявления абстрактного класса:

public abstract class Parent

{

}