Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Описание нового класса
Описание нового класса похоже на описание новой структуры данных, только к полям (свойствам) добавляются методы — подпрограммы. В Си++ и Паскале для описания класса используется ключевое слово class. Паскаль: class TMyClass Iteml: integer; Item2: string; function GetSum(n: integer): integer; procedure Initialize; end;
Си++: class TMyClass { int Iteml; int Item2; int GetSum(int n); void Initialize();
При определении подпрограмм, принадлежащих конкретному классу, его методов, в заголовке подпрограммы перед ее названием явно указывается, к какому классу она принадлежит. Название класса от названия метода отделяют специальные символы (точка в Паскале или два двоеточия в Си++). Паскаль: procedure TMyClass.Initialize; begin Iteml: = 1; Item2: = " "; end;
Си++: void TMyClass:: Initialize() { Iteml = 1; Item2 = 0; }
Класс — это тип данных, такой же, как любой другой базовый или сложный тип. На его основе можно описывать конкретные объекты (экземпляры классов). Паскаль: var Cl, C2: TMyClass;
Си++: TMyClass Cl, C2;
Доступ к свойствам объектов и к их методам осуществляется так же, как к полям записей, через точку: Cl.Iteml: = 5; С2.Initialize; х: = Cl.GetSum(21); Объединение данных с методами в одном типе (классе) называется инкапсуляцией. Наследование Важнейшая характеристика класса — возможность создания на его основе новых классов с наследованием всех его свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называется базовым. Например, класс «животное» имеет свойства «название», «размер», методы «идти» и «размножаться». Созданный на его основе класс «кошка» наследует все эти свойства и методы, к которым дополнительно добавляется свойство «окраска» и метод «пить». Наследование позволяет создавать новые классы, повторно используя уже готовый исходный код и не тратя времени на его переписывание. Полиморфизм В большинстве случаев методы базового класса у классов-наследников приходится переопределять — объект класса «кошка» выполняет метод «идти» совсем не так, как объект класса «амеба». Все переопределяемые методы по написанию (названию) будут совпадать с методами базового объекта, однако компилятор по типу объекта (его классу) распознает, какой конкретно метод надо использовать, и не вызовет для объекта класса «кошка» метод «идти» класса «животное». Такое свойство объектов переопределять методы наследуемого класса называется полиморфизмом.
|