Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7 семестр / Учебники / Все лекции С# / Все лекции С# / Лекции C# for print fineprint.docx
Скачиваний:
340
Добавлен:
24.02.2016
Размер:
523 Кб
Скачать
☆

Рекомендации по программированию

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

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

В идеале интерфейс должен быть полным, то есть предоставлять возможность выполнять любые разумные действия с классом, и одновременно минимально необходимым – без дублирования и пересечения возможностей методов.

Методы определяют поведение класса. Каждый метод класса должен решать только одну задачу (не надо объединять два коротких независимых фрагмента кода в один метод). Размер метода может варьироваться в широких пределах, все зависит от того, какие функции он выполняет.

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

Поля, характеризующие класс в целом, то есть имеющие одно и то же значение для всех экземпляров, следует описывать как статические. Все литералы, связанные с классом (числовые и строковые константы), описание как поля-константы с именами, отражающими их смысл.

Лекция 15. Наследование. Виртуальные функции. Сокрытие методов базового класса. Абстрактные и закрытые классы Наследование

Наследование – создание новых классов на базе существующих.

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

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

Одна из особенностей производного класса – видимость унаследованных компонент базового класса.

Класс, который наследуется (является родителем) называется базовым классом, а класс, который является наследником (потомком) называетсяпроизводным классом.

Как базовый, так и производный класс могут иметь свои конструкторы. Так как конструктор базового класса ничего не знает о конструкторе производного класса, то при создании объекта производного класса вначале будет выполнен конструктор базового класса, а затем – конструктор производного.

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

Если конструктор базового класса имеет параметры для инициализации своего объекта, то конструктор производного класса обязан обеспечить передачу ему исходных данных.