Хранение семейных тайн: ключевое слово protected

Хранение семейных тайн: ключевое слово protected

Вы уже знаете, что открытые элементы непосредственно доступны отовсюду, а приватные элементы недоступны для объектов вне класса, определяющего эти элементы. Язык C#, занимающий лидирующие позиции среда многих других современных объектных языков, обеспечивает еще один уровень доступа: защищенный.

Если базовый класс определяет защищенные данные или защищенные члены, он может создать набор элементов, которые будут непосредственно доступны для любого дочернего класса. Например, чтобы позволить дочерним классам SalesPerson и Manager непосредственный доступ к сектору данных, определенному классом Employee, обновите оригинальное определение класса Employee так, как показано ниже.

// Защищенные данные состояния.

public class Employee {

 // Дочерние классы могут иметь непосредственный доступ

 // к этой информации, а пользователи объекта – нет.

 protected string fullName;

 protected int empID;

 protected float currPay;

 protected string empSSN;

 protected int empAge;

 …

}

Удобство определения защищенных членов в базовом классе заключается в том, что производные типы теперь могут иметь доступ к данным не только через открытые методы и свойства. Недостатком, конечно, является то, что при прямом доступе производного типа к внутренним данным родителя вполне вероятно случайное нарушение существующих правил, установленных в рамках общедоступных свойств (например, превышение допустимого числа страниц для "мини-романа"). Создавая защищенные члены, вы задаете определенный уровень доверия между родительским и дочерним классом, поскольку компилятор не сможет обнаружить нарушения правил, предусмотренных вами для данного типа.

Наконец, следует понимать, что с точки зрения пользователя объекта защищенные данные воспринимаются, как приватные (поскольку пользователь находится "за пределами семейства"). Так, следующий вариант программного кода некорректен.

static void Main(string[] args) {

 // Ошибка! Защищенные данные недоступны на уровне экземпляра.

 Employee emp = new Employee();

 emp.empSSN = "111-11-1111";

}

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Софтерра: Язычество без тайн

Из книги Журнал «Компьютерра» №39 от 25 октября 2005 года автора Журнал «Компьютерра»

Софтерра: Язычество без тайн По традиции осенью компания ABBYY Software обновляет семейство электронных словарей Lingvo.Вам пакетДля обзора нам был предоставлен пакет «Lingvo 11 Шесть языков». Его более мощный собрат «Lingvo 11 Многоязычный» должен появиться в ноябре-декабре. Когда


Хранение ноутбука

Из книги Работа на ноутбуке автора Садовский Алексей

Хранение ноутбука Мобильный компьютер лучше всего держать в помещении с невысокой влажностью из-за возможности появления конденсата на материнской плате или другой микросхеме.Если вы работаете в пыльном помещении, то после выключения ноутбук нужно хранить в закрытом


«Protected Mode – там, где тепло и сухо…»

Из книги Защити свой компьютер на 100% от вирусов и хакеров автора Бойцев Олег Михайлович

«Protected Mode – там, где тепло и сухо…» Почему бы не создать вирус, работающий в защищенном режиме процессора? Действительно, обнаружить такой вирус антивирусной программе будет, мягко говоря, ну очень трудно, если не невозможно.В качестве горячего примера, реализующего


Ключевое слово static

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Ключевое слово static Как уже говорилось в этой главе, члены классов (и структур) в C# могут определяться с ключевым cловом static В этом случае соответствующий член должен вызываться непосредственно на уровне класса, а не экземпляра типа. Для иллюстрации рассмотрим "знакомый"


Получение интерфейсных ссылок: ключевое слово as

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Получение интерфейсных ссылок: ключевое слово as Второй способ проверить поддержку интерфейса для данного типа предполагает использование ключевого слова as, о котором уже шла речь в главе 4. Если объект можно интерпретировать, как указанный интерфейс, будет возвращена


Получение интерфейсных ссылок: ключевое слово is

Из книги VBA для чайников автора Каммингс Стив

Получение интерфейсных ссылок: ключевое слово is Можно также проверить реализацию интерфейса с помощью ключевого слова is. Если соответствующий объект не совместим указанным интерфейсом, будет возвращено значение false. А если тип совместим с интерфейсом, вы можете смело


Ключевое слово checked

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

Ключевое слово checked Вы, несомненно, прекрасно знаете, что любой числовой тип данных имеет свои строго заданные верхний и нижний пределы (значения которых можно выяснить программными средствами с помощью свойств MaxValue и MinValue). При выполнении арифметических операций с


Ключевое слово unchecked

Из книги Создаем вирус и антивирус автора Гульев Игорь А.

Ключевое слово unchecked В предположении, что вы активизировали проверку переполнения для всего проекта, как разрешить игнорирование переполнений для тех блоков программного кода, где "молчаливая реакция" на переполнение вполне приемлема? Поскольку флаг /checked предполагает


Ключевое слово sizeof

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Ключевое слово sizeof В заключение обсуждения вопросов, связанных с небезопасным контекстом в C#, рассмотрим ключевое слово sizeof. Как и в C(++), ключевое слово C# sizeof используется для того, чтобы выяснить размер в байтах типа, характеризуемого значениями (но не ссылочного типа), и


Ключевое слово this

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Ключевое слово this Ключевое слово this представляет собой указатель на текущий объект класса. Методы класса могут использовать ключевое слово this чтобы получить указатель на объект для которого вызван данный метод. Указатель this представляет собой постоянную величину, вы не


Ключевое средство отладки: окно Watches

Из книги Готовимся к пенсии: осваиваем Интернет автора Ахметзянова Валентина Александровна

Ключевое средство отладки: окно Watches Когда вы освоите работу с окном Locals, работа с окном Watches (Окно контролируемых выражений) покажется просто забавой. Окно Watches делает, по сути, то же самое, что и окно Locals, но с одним очевидным отличием - те выражения, значения которых будут


Организация обмена сообщениями на основе «семейных» процессов

Из книги автора

Организация обмена сообщениями на основе «семейных» процессов Рассмотрим, как можно организовать обмен сообщениями между потоками, принадлежащими процессам, связанным «родственными узами». Для простоты изложения, чтобы в дальнейшем не формулировать «поток,


Protected Mode – укрытие для вируса

Из книги автора

Protected Mode – укрытие для вируса Персональные компьютеры год от года становятся все сложнее и сложнее, используют все более высокие аппаратные и программные технологии. Компьютерные вирусы тоже не отстают и пытаются приспособиться к новым условиям обитания. Так, вирусы


КЛЮЧЕВОЕ СЛОВО return

Из книги автора

КЛЮЧЕВОЕ СЛОВО return      Принципы программирования на языке Си основаны на понятии функции. В представленных ранее примерах программирования мы уже воспользовались несколькими функциями: printf( ), scanf( ), getchar( ), putchar( ) и strlen( ). Эти функции являются системными, однако мы


Хранение фотографий

Из книги автора

Хранение фотографий Особенно это касается фотографий. Их со временем скапливается все больше и больше, и чтобы найти нужную фотографию, порою тратится очень много времени. Я, например, для фотографий завела две папки. В одной — все фотографии разложены в хронологическом