Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 64

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 58 59 60 61 62 63 < 64 > 65 66 67 68 69 70 .. 320 >> Следующая

// currPay автоматически присвоено 0.QF - поскольку это - значение
// по умолчанию для этого типа данных
public Employee(string fullName)
{
this.fullName - fullName;
this.empID - IDGenerator.GetNewEmplDO:
)
Определение открытого интерфейса по умолчанию 143
Определение открытого интерфейса по умолчанию
Открытый интерфейс по умолчанию для класса (default public interface) - это набор открытых членов данного класса. С точки зрения обращения к членам класса из остальной части программы открытый интерфейс по умолчанию - это набор тех переменных, свойств и методов — членов, к которым можно обратиться в формате имя_о(іь -екта. член_класса. С точки зрения определения класса — это набор тех членов класса, которые объявлены с использованием ключевого слова publ і с. В С# открытый интерфейс по умолчанию для класса может состоять из следующих членов этого класса:
• методов — наборов действий, определенных как единое целое, с помощью которых реализуется поведение данного класса;
• свойств —«переодетыXs- функций для получения данных и их изменения;
• полей: открытых переменных-членов (как правило, использование таких переменных — не самый лучший вариант, но в С# они поддерживаются).
Как мы увидим в главе 5, открытый интерфейс класса по умолчанию может
также быть настроен таким образом, чтобы поддерживать события. Однако сейчас
мы оставим события в стороне и сконцентрируемся на использовании свойств,
методов и полей.
Указание области видимости на уровне типа: открытые и внутренние типы
Перед тем как углубиться в новые варианты нашего примера с сотрудником, нам необходимо разобраться с областями видимости для типов. В предыдущих главах мы много раз встречались с определениями классов вида;
class ks-vioc'! ass {
SS Любое количество методов с любым количеством параметров // Конструктор по умолчанию и полвзователвские конструкторы // Если в этом классе определена и точка входа для всей программы, // то еще и статический нетод MainO
1
Как мы помним, для каждого члена класса необходимо указать (или принять значение по умолчанию) область видимости с помощью одного из следующих ключевых слов: public, private, protected и internal. Однако область видимости задается не только для членов класса, но и для самих классов! Разница между областью видимости для членов классов и областью видимости для самих классов заключается в том, что в первом случае мы определяем те члены класса, которые будут доступны через экземпляры объектов, а во втором — те области программы, из которых будет возможно обращение к данным классам.
Для класса в С# используется только два ключевых слова для определения области видимости: public и internal. Объекты классов, определенных как public (открытых), могут быть созданы как из своего собственного двоичного файла, так и из других двоичных файлов С# (то есть из другой сборки). Если переопределять I--.?! 1 oC'l ass как publ i с, то это можно сделать следующим образом:
144 Глава 3 • •• и объектно-ориентированное программирование
// Теперь этот класс можно создавать из-за пределов Сборки, в которой он определен public class HelloClass
^ Il Любое количество методов с любым количеством параметров // Конструктор по умолчанию и пользовательские конструкторы
// Если в этом классе определена и точка входа для всей программы, // то еще и статический метод HaInO
}
Если вы не указали явно область видимости для класса, то по умолчанию этот класс будет объявлен как Internal (внутренний). Объекты таких классов могут создаваться только объектами из той же сборки, в которой они были определены. Внутренние классы часто рассматриваются как вспомогательные (helper classes), поскольку они используются типами данной сборки для помощи в выполнении
каких-либо действий.
// Внутренние классы могут ¦ только внутри той сборки, а которой они
определены
internal class HelloClassHelper {
}
Классы — это не единственные пользовательские типы данных, для которых существует атрибут области видимости. Как мы помним, тип - это общий термин, который используется в отношении классов, структур, перечислений, интерфейсов и делегатов. Атрибут видимости (public или internal) может быть установлен для любого типа С#, например:
namespace HelloClass {
using System; •
internal struct X И Эта структура не сможет быть использована из-за пределов
// данной сборки
{
private int myX:
public int GetHyXO {return MyX: } public X(int X) { myX = x:)
I
internal nam Letters // перечисление не сможет быть использовано
// из-за пределов данной сборки
{
а = О, Ь = 1, с =2
}
public class HelloClass //Можне использовать откуда угодно {
public static int Main(string[] args) {
X theX - new X (26);
Console.WriteCine(theX.GetMyXO + "\n" + Letters, b. ToSt ringO); return 0;
}
}
}
Все рассмотренные выше типы можно для наглядности собрать в единую схему (рис. 3.2):
Столпы объектно-ориентированного программирования 145
MyAssembly.exe
Манифест
Открытые типы
Class: HelloClass
Внутренние типы
Struct: X
Предыдущая << 1 .. 58 59 60 61 62 63 < 64 > 65 66 67 68 69 70 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100