Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч


Download 2.46 Mb.
bet23/91
Sana19.10.2023
Hajmi2.46 Mb.
#1709453
TuriУчебно-методический комплекс
1   ...   19   20   21   22   23   24   25   26   ...   91
Bog'liq
Язык программирования C#

6.2. Доступ к членам класса

После создания объекта доступ к его членам происходит через оператор уточнения “.”. Например доступ к методам нашего объекта Kashtanka класса Dog имеет следующий вид:


Kashtanka.GrowUp();


Kashtanka.Bark();

Из соображений инкапсуляции доступ к членам класса необходимо ограничивать, для этого используются спецификаторы доступа. В языке C# их четыре: private, protected, public и internal. Спецификаторы доступа ставятся перед объявлением члена класса.


private int ItsAge;


private string ItsName;

public void Bark()


public void GrowUp()

public Dog(int Age, string Name)


Лист. 6.4
Спецификатор доступа private используется по умолчанию, то есть его можно опускать при объявлении члена класса. Спецификатор private является самым жестким доступ к члену, помеченному как private, возможен только для членов этого класса. Члены класса, перед которыми стоит модификатор private называются закрытыми.
Следующие попытки обратиться к закрытым членам класса Dog вызовут ошибку времени компиляции.

Kashtanka.ItsName = "Букет";


Kashtanka.ItsAge = 100;
Лист. 6.5

В ответ на этот код компилятор сгенерировал следующие ошибки:


Error 1 'OOP.Dog.ItsName' is inaccessible due to its protection level


Error 2 'OOP.Dog.ItsAge' is inaccessible due to its protection level

Спецификатор доступа protected закрывает члены класса для внешнего доступа, но оставляет их видимыми для потомков класса. Члены класса, помеченные как protected, называются защищенными.


При создании иерархии классов спецификатор protected обычно является более предпочтительным, нежели спецификатор private, который закрывает доступ членам класса, как для внешнего доступа, так и для потомков. Подробнее этот спецификатор мы разберем в главе посвященной наследованию.

Самым открытым спецификатором доступа является public. Помеченные им члены видны, как внешним классам и объектам, так и потомкам класса. Члены класса, объявленные спецификатором public, называются открытыми.


Именно благодаря открытости методов Bark(), GrowUp() и GetLength() возможны следующие строки, обращающиеся к объекту.
Kashtanka.GrowUp();
Kashtanka.Bark();
Console.WriteLine("Возраст Каштанки: " + Kashtanka.GetAge());
Лист. 6.6

Спецификатор доступа internal схож со спецификатором public. Помеченные им члены класса, видимы для всех классов и объектов одной с ним сборки и недоступны для других сборок.





Download 2.46 Mb.

Do'stlaringiz bilan baham:
1   ...   19   20   21   22   23   24   25   26   ...   91




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling