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

Для того чтобы продемонстрировать применение ключевого словаbaseна конкретном примере, рассмотрим еще один вариант классаTwoDShapeв приведенной ниже программе. В данном примере определяется конструктор, инициализирующий свойстваWidthиHeight.Затем этот конструктор вызывается конструктором классаTriangle.

// Добавить конструктор в класс TwoDShape. using System;

// Класс для двумерных объектов, class TwoDShape { double pri_width; double pri_height;

// Конструктор класса TwoDShape. public TwoDShape(double w, double h) {

Width = w;

Height = h;

}

public double Width {

get    {    return pri_width; }

set    {    pri_width = value <    0 ? -value :    value; }

}

public double Height {

get    {    return pri_height; }

set    {    pri_height = value <    0 ?    -value    : value; }

}

public void ShowDim {

Console.WriteLine("Ширина и высота равны " +

Width + " и " + Height);

}

}

// Класс для треугольников, производный от класса TwoDShape. class Triangle : TwoDShape { string Style;

// Вызвать конструктор базового класса.

public Triangle(string s, double w, double h) : base(w, h) Style = s;

}

// Возвратить площадь треугольника, public double Area {

return Width * Height / 2;

}

// Показать тип треугольника, public void ShowStyleO {

Console.WriteLine("Треугольник " + Style);

}

}

class Shapes4 {

static void Main {

Triangle tl = new Triangle("равнобедренный", 4.0, 4.0); Triangle t2 = new Triangle("прямоугольный", 8.0, 12.0); Console.WriteLine("Сведения об объекте tl: "); tl.ShowStyle; tl.ShowDim;

Console.WriteLine("Площадь равна " + tl.AreaO);

Console.WriteLine;

Console.WriteLine("Сведения об объекте t2: "); t2.ShowStyle; t2.ShowDim;

Console.WriteLine("Площадь равна " + t2.Area);

Теперь конструктор классаTriangleобъявляется следующим образом.

public Triangle(

string s, double w, double h) : base(w, h) {

В данном варианте конструкторTriangle вызывает методbaseс параметрами w иh.Это, в свою очередь, приводит к вызову конструктораTwoDShape , инициализирующего свойстваWidthиHeightзначениями параметровwиh.Они больше не инициализируются средствами самого классаTriangle,где теперь остается инициализировать только его собственный членStyle,определяющий тип треугольника. Благодаря этому классTwoDShapeвысвобождается для конструирования своего по-добъекта любым избранным способом. Более того, в классTwoDShapeможно ввести функции, о которых даже не будут подозревать производные классы, что предотвращает нарушение существующего кода.

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных