ВУЗ:
Составители:
Рубрика:
61
3) Хотя мы и ввели для удобства пользов ателя три пары методов
для чтения-записи цветовых компонент, их реализацию можно выпол -
нить с помощью пары вспомогательных методов , принимающих в каче-
стве параметра номер компоненты:
function GetComp(i: Integer): Real; // чтение значения
procedure SetComp(i: Integer; value: Real); // изменение значения
Три приведенных метода могут оказаться полезными при разра-
ботке наследников класса RGBColor, поэтому их разумно объявить з а-
щищенными и виртуальными. Описанную реализацию содержат прим е-
ры 4.1.1 и 4.1.2.
Пример 4.1.1. Реализация методов класса Whole.
procedure Whole.Add(n: Number);
begin
if n is Whole // типы текущего объекта и параметра должны совпадать
then self.value:=self.value+(n as Whole).value
else raise Exception.Create('Invalid operation');
end;
procedure Whole.Subtract(n: Number);
begin
if n is Whole
then self.value:=self.value-(n as Whole).value
else raise Exception.Create('Invalid operation');
end;
procedure Whole.MultiplyBy(n: Number);
begin
if n is Whole
then self.value:=self.value*(n as Whole).value
else raise Exception.Create('Invalid operation');
end;
procedure Whole.DivideBy(n: Number);
begin
if (n is Whole) and ((self.value mod (n as Whole).value)=0)
// self.value должно быть кратно n.value
then self.value:=self.value div (n as Whole).value
else raise Exception.Create('Invalid operation');
end;
procedure Whole.Assign(n: Number);
begin
if n is Whole
then self.value:=(n as Whole).value
else raise Exception.Create('Invalid operation');
end;
3) Х отя м ы и в в ел и д л я уд обс т в а пол ь з ов ат ел я т ри пары м етод ов
д л я чт ения-з апис и ц в етов ы х ком понент, их реал из ац ию м ожно в ы пол -
нит ь с пом ощ ь ю пары в с пом огат ел ь ны х м етод ов , приним ающ их в каче-
с т в е парам ет ра ном ер ком понент ы :
function GetComp(i: Integer): Real; // чтение значения
procedure SetComp(i: Integer; value: Real); // изменение значения
Три прив ед енны х м етод а м огут оказ ат ь с я пол ез ны м и при раз ра-
бот ке нас л ед ников кл ас с а RGBColor, поэтом у их раз ум но объяв ит ь з а-
щ ищ енны м и и в ирт уал ь ны м и. О пис анную реал из ац ию с од ержат прим е-
ры 4.1.1 и 4.1.2.
Пример4.1.1. Реал из ац ия м етод ов кл ас с а Whole.
procedure Whole.Add(n: Number);
begin
if n is Whole // типы текущего объекта и параметра должны совпадать
then self.value:=self.value+(n as Whole).value
else raise Exception.Create('Invalid operation');
end;
procedure Whole.Subtract(n: Number);
begin
if n is Whole
then self.value:=self.value-(n as Whole).value
else raise Exception.Create('Invalid operation');
end;
procedure Whole.MultiplyBy(n: Number);
begin
if n is Whole
then self.value:=self.value*(n as Whole).value
else raise Exception.Create('Invalid operation');
end;
procedure Whole.DivideBy(n: Number);
begin
if (n is Whole) and ((self.value mod (n as Whole).value)=0)
// self.value должно быть кратно n.value
then self.value:=self.value div (n as Whole).value
else raise Exception.Create('Invalid operation');
end;
procedure Whole.Assign(n: Number);
begin
if n is Whole
then self.value:=(n as Whole).value
else raise Exception.Create('Invalid operation');
end;
61
Страницы
- « первая
- ‹ предыдущая
- …
- 59
- 60
- 61
- 62
- 63
- …
- следующая ›
- последняя »
