Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SHPORY DLYA TEL.doc
Скачиваний:
42
Добавлен:
30.04.2015
Размер:
462.34 Кб
Скачать

18 Объекты и классы с

Объекты в C – это программные конструкции, формируемые так называемыми классам. Определение пере­менной класса также называется созданием экземпляра класса (class instantiation). Классы – это структуры, которые содержат не только объявления данных, но и функций. Эти функции называются функциями-членами (member functions) и определяют, что может делать класс. Для того чтобы использовать класс, его нужно вначале объявить. Полное объявление класса может появиться в программе только один раз. Рассмот­рим пример объявления простого класса:

class Counter {

long count;

public:

void SetValue(long);

long GetValue() ;};

Ключевое слово class вводит объявление класса. Далее следует имя клас­са. Тело класса должно заключаться в фигурные скобки, после которых стоит точка с запятой. Классы могут содер­жать не только объявления функций, но и их полные определения. Переменные, объявленные внутри класса, принадлежат этому классу. Идентификаторы переменных и функций внутри класса застрахованы от конфликтов с идентификаторами других классов.

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

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

Класс Counter содержит объявление функций SetValue (long) и GetValue (), которые называются функ­циями-членами (member function) класса. Эти функции пока не определены, они только объявлены. Реальное их определение для класса Counter было опущено и приводится только сейчас:

void Counter::Setvalue(long value)

{count = value;}

long Counter::GetValue()

{return count;}

При определении функции-члена после типа возвращаемого значения нужно всегда указывать, членом какого класса является функция. Для этого нужно написать имя класса и поставить за ним два двоеточия. Как и другие функции в C, функции-члены должны быть объявлены до использования. Объявление должно быть полным, включая тип возвращаемого значения и типы аргументов. В C типы аргументов функции должны быть объяв­лены одновременно с функцией-членом с помощью следующей записи:int foo (int parm1, long parm2);

Для того чтобы использовать класс, нужно определить объект этого класса. Объек­ты класса определяются точно так же, как структурные или скалярные переменные. Чтобы определить переменную people типа Counter, используйте следующую запись:Counter people;

19 Управление доступом к классу.

Управление доступом к классу осуществляется спецификатором класса.

Объявление класса

[спецификаторы] class ИмяКласса [extends суперкласс] [implements список_интерфейсов]{

/*определение класса*/

}

Спецификатор Назначение

public класс доступен объектам своего пакета и вне его

не задан класс доступен только в своем пакете (friendly)

final класс не может иметь подклассов

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]