pascalabcnet/InstallerSamples/!Tutorial/15_Classes/PersonInternal.pas

30 lines
1.2 KiB
ObjectPascal
Raw Permalink Normal View History

// Описание методов внутри интерфейса класса
// Удобство: методы можно реализовывать сразу после объявления
// Неудобство: для больших классов интерфейс трудно читается
2015-05-14 22:35:07 +03:00
type
Person = class
private
// Поля класса, как правило, приватны. Доступ к ним - через методы и свойства
2015-05-14 22:35:07 +03:00
name: string;
age: integer;
public
// Конструктор неявно имеет имя Create
2015-05-14 22:35:07 +03:00
constructor (n: string; a: integer);
begin
name := n; age := a;
end;
procedure Print;
begin
writeln('Имя: ',name,' Возраст: ',age);
2015-05-14 22:35:07 +03:00
end;
end;
var p,p1: Person;
begin
p := new Person('Иванов',20); // Новый синтаксис вызова конструктора (рекомендуется)
2015-05-14 22:35:07 +03:00
p.Print;
p1 := Person.Create('Попов',19); // Старый синтаксис вызова конструктора (не рекомендуется)
2015-05-14 22:35:07 +03:00
p1.Print;
// Деструкторы отсутствуют, вместо них - автоматическая сборка мусора
2015-05-14 22:35:07 +03:00
end.