Читаем C#. Объектно ориентированное программирование полностью

члены актуальны при создании компонентов. Поскольку мы в ближай-

шее время компоненты создавать не планируем, то и идентификатор

internal использовать не будем.

Для применения наследования необязательно создавать высокоинтел-

лектуальные коды, наподобие приведенных выше. Как уже отмечалось, наследовать (использовать как базисный) можно и стандартный, библи-

отечный класс. В качестве простой иллюстрации рассмотрим процесс

создания программы с графическим интерфейсом, который состоит из

одного-един ст вен ного, более чем скромного окна. Для выполнения этой

миссии мы на основе библиотечного класса Form путем наследования соз-

дадим собственный класс, через который, собственно, и реализуем окон-

ную форму.

Здесь речь идет о создании пользовательской оконной формы про-

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

Для этих целей предназначен класс Form. Создание формы означает

на самом деле создание объекта этого класса. Другими словами, мы

могли бы просто в программе создать объект класса Form, а затем

с помощью статического метода Run() класса Application отобразить

эту форму на экране компьютера. На практике поступают несколь-

ко  иначе,  а  именно,  на  основе  класса  Form  создают  производный

класс, сразу прописав нужные свойства/характеристики и определив

важные настройки. Для создания оконной формы создают объект

этого производного класса. Этим мы и собираемся заняться в самое

ближайшее время.

Полезный в нашей работе программный код представлен во всей красе

в листинге 2.6.

Листинг 2.6.  Наследование класса Form

using System;

using System.Windows.Forms;

// Наследуется класс Form:

class MyForm:Form{

// Конструктор класса с текстовым аргументом:

public MyForm(string txt){

// Заголовок окна:

Наследование и уровни доступа           79

Text=txt;

// Высота окна:

Height=100;

// Ширина окна:

Width=300;

}

}

class MyFormDemo{

// Единый поток:

[STAThread]

// Главный метод программы:

public static void Main(){

// Создание объекта окна:

MyForm mf=new MyForm("Всем большой привет!");

// Отображение формы:

Application.Run(mf);

}

}

В результате выполнения этого программного кода появляется окно, по-

казанное на рис. 2.4.

Рис. 2.4.  Такое простое окно отображается в результате выполнения программы

Окно, как уже отмечалось, настолько простое, что даже комментировать

его внешний вид нет никакой возможности — ни кнопок, ни переключате-

лей. Из всех декоративных атрибутов — только строка заголовка. Это окно

можно перемещать, изменять (с помощью мышки) его размеры, свернуть/

развернуть, а также закрыть с помощью системной пиктограммы в правом

верхнем углу окна. Но, несмотря на такую простоту, окно это примечатель-

но тем, что является первым нестандартным окном, с которым мы имеем

дело в этой книге, созданным собственноручно.

Думается, излишне напоминать, что данная программа реализуется

в среде Visual C# Express как Windows-проект.

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

приводит к столь примечательным результатам. Начнем с класса MyForm,

80

Глава 2. Классы и объекты

который создается на основе класса Form. Процесс наследования стан-

дартный: после имени создаваемого производного класса через двоеточие

указываем имя базового класса. После этого в фигурных скобках описы-

ваем дополнительный код. В данном случае это код конструктора класса

MyClass. Мы описали лишь один конструктор с текстовым аргументом.

Этот аргумент используется при присваивании значения полю Text.

Поле наследуется из класса Form. Значение этого поля определяет заго-

ловок создаваемого окна. Другим словами, если мы будем реализовывать

оконную форму через объект класса MyForm, в строке названия этого окна

будет текст, присвоенный в качестве значения полю Text. Поля Height и Width ответственны за высоту и ширину окна (в пунктах) соответствен-

но. В конструкторе этим полям также присваиваются значения (целочис-

ленные).

У класса Form имеются всевозможные поля (точнее, свойства — но

пока это не принципиально) и методы, которые наследуются при

создании  на  основе  класса  Form  производного  класса  MyForm.

Каждое поле определяет некоторое свойство или характеристику

оконной  формы.  Поэтому  настройка  параметров  оконной  формы

сводится  в  основном  к  присваиванию  правильных  значений  по-

лям/свойствам  объекта,  через  который  эта  форма  реализуется.

В рассматриваемом примере такая настройка выполняется прямо

в конструкторе.

В главном методе программы инструкцией MyForm mf=new MyForm("Всем боль-

шой привет!") создается объект mf класса MyForm. Это объект для оконной

формы. Аргументом конструктору передан текст, который будет впослед-

ствии отображаться в строке названия оконной формы. Но создание объ-

екта еще не означает, что форма появится на экране. Мы ее пока только

создали, и она надежно хранится в «закромах родины». А вот чтобы из-

влечь ее на свет божий, нужна команда Application.Run(mf). Из класса

Application вызывается статический метод Run(), аргументом которому

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

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

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

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

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

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

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

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

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