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