Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Классы и их описание



Класс представляет собой шаблон описания однотипных объектов. На основе одного класса можно создать любое число объектов, называемых экземплярами этого класса. Именно при описании класса перечисляются свойства и реализуются методы соответствующих объектов. С описания хотя бы одного класса начинается создание объектной программы. Все используемые в программе объекты должны быть экземплярами некоторых классов, стандартных или собственных. Соответствие между понятиями «объект» и «класс» аналогично соответствию между понятиями «переменная» и «тип данных».

Описание класса включает в себя:

· заголовок класса с именем класса;

· тело класса, содержащее перечень свойств (полей данных) и перечень методов;

· программную реализацию методов.

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

Большое значение при описании классов имеет разграничение доступа к элементам классов. Для этих целей во всех ОО-языках вводятся специальные директивы ограничения доступа. Элементы класса, объявленные с директивой public, доступны для использования во всех местах объектной программы, поэтому эта директива используется при объявлении открытых методов класса и, в частности, – при объявлении конструкторов. Наоборот, элементы класса с директивой private доступны для использования только внутри самого класса, поэтому эту директиву обычно используют при объявлении закрытых свойств класса. Конечно, при необходимости некоторые методы класса тоже можно объявить закрытыми.

У этого общего правила есть небольшие исключения, специфичные для разных языков. Например, в языке DP все классы в одном модуле (единица компиляции Unit) имеют полный доступ к элементам друг друга, несмотря на использование директивы private. Следовательно, механизм ограничения доступа включается только для классов в разных модулях. В языке Java то же самое имеет место быть для классов внутри одного и того же пакета. В языке С++ аналогичный эффект можно получить, если явно объявить классы дружественными друг другу с помощью директивы friend.

Еще одним общим моментом при описании классов является то, что в одном классе можно объявить несколько методов с одним и тем же именем. Такой механизм называется перегрузкой (overloading) методов. Для того чтобы компилятор мог правильно сопоставить объявление перегруженного метода с его вызовом, все одноименные методы должны отличаться количеством или типом формальных параметров. Довольно часто перегрузка методов используется для объявления в классе нескольких конструкторов.

Во всех объектных языках есть возможность объявления специфических свойств и методов, называемых классовыми. Свойства класса относятся именно к классу и являются общими для всех объектов данного класса, т.е. все созданные объекты используют единственный экземпляр классового свойства. Такие свойства удобны для хранения общих данных для класса в целом. Особенностью классовых свойств и методов является то, что их можно использовать без создания объектов данного класса. Часто такие элементы класса называют статическими.

Теперь после рассмотрения общих моментов в описании классов можно перейти к конкретным правилам и примерам описания классов в различных объектных языках.





Дата публикования: 2014-11-02; Прочитано: 536 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...