КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Описание нового классаОписание нового класса похоже на описание новой структуры данных, только к полям (свойствам) добавляются методы — подпрограммы. В Си++ и Паскале для описания класса используется ключевое слово 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); Объединение данных с методами в одном типе (классе) называется инкапсуляцией. Наследование Важнейшая характеристика класса — возможность создания на его основе новых классов с наследованием всех его свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называется базовым. Например, класс «животное» имеет свойства «название», «размер», методы «идти» и «размножаться». Созданный на его основе класс «кошка» наследует все эти свойства и методы, к которым дополнительно добавляется свойство «окраска» и метод «пить». Наследование позволяет создавать новые классы, повторно используя уже готовый исходный код и не тратя времени на его переписывание. Полиморфизм В большинстве случаев методы базового класса у классов-наследников приходится переопределять — объект класса «кошка» выполняет метод «идти» совсем не так, как объект класса «амеба». Все переопределяемые методы по написанию (названию) будут совпадать с методами базового объекта, однако компилятор по типу объекта (его классу) распознает, какой конкретно метод надо использовать, и не вызовет для объекта класса «кошка» метод «идти» класса «животное». Такое свойство объектов переопределять методы наследуемого класса называется полиморфизмом.
|