Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_KAZYMYR.doc
Скачиваний:
14
Добавлен:
09.11.2019
Размер:
3.71 Mб
Скачать

2.7.4.Визначення методів в Delphi

Особливості визначення:

  1. Як методи можуть розглядатися, як функції, так і процедури.

  2. При визначенні функції автоматично визначається локальна змінна Result, яка зберігає значення параметрів, що повертаються:

Function TmyClass.SQR (x: integer): integer;

begin

SQR:=x*x;

{ або

Result:=x;

Result:=Result*x;}

end;

  1. Допускається попереднє оголошення функцій або процедур c вказівкою слова forward:

Procedure Proc1; forward;

  1. У методах можуть використовуватися відкриті масиви, які дозволяють визначити масиви відкритої довжини. Передача масиву як параметра здійснюється шляхом перерахування його об'єктів, взятих у квадратні дужки:

Function CalcMean(x: Array of Real): Real;

begin

{обчислення середнього значення}

end;

………………………………………………

Writeln('Середнє значення = ', CalcMean([1.2,1.5,1.7]));

Саме тіло функції може бути визначене в такий спосіб:

Function CalcMean (x: Array of Real): Real;

Var i: word;

sum: real;

begin

sum:=0;

For i:=0 to High(x) do

sum:=sum+ x[i];

Result:=sum/(High(x)+1);

end;

Тут High(x) – величина типу word, що дорівнює числу елементів масиву мінус 1.

  1. Класові методи можуть бути реалізовані через посилання на клас. Як і в С++ їх можна викликати, використовуючи для цього екземпляри класу, але працювати вони можуть тільки із глобальними змінними. На них поширюється право доступу у своєму класі:

Type TSample= class

ID: integer;

class function GetClassName: string; {одержати ім'я класу}

end;

implementation

class function TSample.GetClassName: string;

begin

Result:='TSample class';

end;

Var anObj: TSample;

s: string;

begin

s:= TSample.GetClassName; {через клас}

anObj:=TSample.Create;

s:= anObj.GetClassName; {через екземпляр класу}

end.

2.7.5.Визначення методів в Java

Особливості визначення:

  1. Всі методи повинні бути визначені усередині оголошення класу. Синтаксис оголошення:

<специфікатор доступу > [static][abstruct][final] <тип значення, що повертається ><ім'я методу >([список параметрів]) {тіло методу}

  1. Повернення значень здійснюється за допомогою функції

return (<повертає значення >)

  1. При поверненні об'єкта повертається тип, що, повинен збігатися або із класом або з одним з його підкласів.

  2. Якщо метод повертає інтерфейс, то повертається об’єкт, що, повинен реалізувати цей інтерфейс.

  3. Допускається перевантаження й заміщення методів. Перевантаження здійснюється так само, як і в С++. Змінна super використовується для виклику заміщеного суперкласу.

  4. Допускається використання абстрактних методів, реалізація яких здійснюється в підкласах даного класу.

  5. Допускається оголошення методів класу як статичних методів. Їх можна викликати, як для класу, так і для його об'єктів, але використовувати усередині методів потрібно тільки статичні змінні.

Примітка: в Java глобальних змінних нема, тому що всі оголошення робляться усередині класу.

  1. Можуть бути визначені final методи, які не можна перевизначати, і abstract методи, що підлягають реалізації в підкласах.

final void meth () {...………………}

abstract void callme(); // тіло методу відсутнє

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