Методы в записях: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) (Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...) |
Mikst (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
В записях также можно определять методы и конструкторы. | |||
В отличие от объектов классов переменные записей можно не инициализировать (поля инициализируются по умолчанию нулевыми значениями). | |||
Инициализацию полей записей можно также проводить либо специальным методом (в данном случае Init), либо вызовом конструктора. | |||
Несмотря на то, что записи являются, в отличие от класса, размерным типом, синтаксис вызова конструктора - такой-же, как и для классов. | |||
<source lang="Delphi">type | |||
Point = record | |||
x,y: integer; | |||
procedure Init(x,y: integer); | |||
begin | |||
Self.x := x; | |||
Self.y := y; | |||
end; | |||
constructor (x,y: integer); | |||
begin | |||
Self.x := x; | |||
Self.y := y; | |||
end; | |||
procedure Println; | |||
begin | |||
writeln(x,' ',y); | |||
end; | |||
end; | |||
var p,p1: Point; | |||
begin | |||
p.Init(2,3); | |||
p.Println; | |||
p1 := new Point(5,6); | |||
p1.Println; | |||
end. | |||
</source> | |||
== Ссылки == | == Ссылки == | ||
*[[Особенности языка: продвинутый уровень]] | *[[Особенности языка: продвинутый уровень]] | ||
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] | *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] |
Текущая версия от 16:49, 14 января 2010
В записях также можно определять методы и конструкторы. В отличие от объектов классов переменные записей можно не инициализировать (поля инициализируются по умолчанию нулевыми значениями). Инициализацию полей записей можно также проводить либо специальным методом (в данном случае Init), либо вызовом конструктора. Несмотря на то, что записи являются, в отличие от класса, размерным типом, синтаксис вызова конструктора - такой-же, как и для классов.
type
Point = record
x,y: integer;
procedure Init(x,y: integer);
begin
Self.x := x;
Self.y := y;
end;
constructor (x,y: integer);
begin
Self.x := x;
Self.y := y;
end;
procedure Println;
begin
writeln(x,' ',y);
end;
end;
var p,p1: Point;
begin
p.Init(2,3);
p.Println;
p1 := new Point(5,6);
p1.Println;
end.