Читаем C# 4.0 полное руководство - 2011 полностью

public int    gamma;    //    открытый    доступ

// Методы,    которым    доступны члены alpha и beta данного    класса.

// Член класса может иметь доступ к закрытому члену этого же класса.

public void SetAlpha(int а) { alpha = а;

public int GetAlphaO { return alpha;

}

public void-SetBeta(int a) { beta = a;

}

public int GetBeta { return beta;

}

}

class AccessDemo { static void Main {

MyClass ob = new MyClassO;

// Доступ к членам alpha и beta данного класса // разрешен только посредством его методов, ob.SetAlpha(-99) ; ob.SetBeta(19) ;

Console.WriteLine("ob.alpha равно " + ob.GetAlpha);

Console.WriteLine("ob.beta равно " + ob.GetBeta);

// Следующие виды доступа к членам alpha и beta // данного класса не разрешаются.

// ob.alpha =10; // Ошибка! alpha - закрытый член!

// ob.beta =9;    // Ошибка! beta - закрытый член!

// Член gamma данного класса доступен непосредственно,

// поскольку он является открытым, ob.gamma = 99;

}

}

Как видите, в классеMyClassчленalphaуказан явно какprivate,членbetaстановитсяprivateпо умолчанию, а членgammaуказан какpublic.Таким образом, членыalphaиbetaнедоступны непосредственно из кода за пределами данного класса, поскольку они являются закрытыми. В частности, ими нельзя пользоваться непосредственно в классеAccessDemo.Они доступны только с помощью таких открытых(public)методов, какSetAlpha () иGetAlpha . Так, если удалить символы комментария в начале следующей строки кода:

// ob.alpha =10; // Ошибка! alpha - закрытый член!

то приведенная выше программа не будет скомпилирована из-за нарушения правил доступа. Но несмотря на то, что членalphaнедоступен непосредственно за пределами классаMyClass,свободный доступ к нему организуется с помощью методов, определенных в классеMyClass,как наглядно показывают методыSetAlpha иGetAlpha . Это же относится и к членуbeta.

Из всего сказанного выше можно сделать следующий важный вывод: закрытый член может свободно использоваться другими членами этого же класса, но недоступен для кода за пределами своего класса.

Организация закрытого и открытого доступа

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

•    Члены, используемые только в классе, должны быть закрытыми.

Перейти на страницу:

Похожие книги

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT