Delphi. Урок 19. Поля-объекты внутри классов 1.2

В этом уроке мы рассмотрим особенности создания объектов в качестве полей классов.
Как уже упоминалось в предыдущем уроке, полями могут являться не только обыкновенные переменные типа Integer, String или Boolean, но также и любые экземпляры других классов. Забегая немного вперед, скажу, что и это далеко не все, что можно объявить внутри класса. Предположим, у нас существует три класса, описанные следующим образом:

 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32
 
type



TTeacher = class

public

  FullName: string;



  constructor Create(NewFullName: string);

  destructor Destroy;

end;



TStudent = class

public

  FullName: string;

  

  MathTeacher: TTeacher;

  PhysicsTeacher: TTeacher;

  BiologyTeacher: TTeacher;

  

  constructor Create(NewFullName: string);

  destructor Destroy;

end;



TSchool = class

public

  SchoolNumber: integer;  



  Teachers: array [1..10] of TTeacher;

  Students: array [1..100] of TStudent;



  constructor Create(NewSchoolNumber: integer);

  destructor Destroy;

end;

Внимательно рассмотрим описания этих классов. Реализации конструктора и деструктора принципиально ничем не отличаются от тех, что были представлены в предыдущем уроке.
Как вы видите, мы создали три класса: учитель, ученик и школа. Класс TTeacher наиболее простой из приведенных, т.к. содержит лишь одно поле — полное имя. Класс TStudent как раз и демонстрирует нам пример создания поля, указывающее на другой объект другого класса. Кстати говоря, поля могут ссылаться и на другой объект этого же класса.
Чтобы создать внутри класса А поле, которое будет являться экземпляром другого класса B, необходимо учесть, что класс B должен быть описан ДО описания класса A.
Таким образом, класс нашего ученика содержит в себе три поля — ссылки на преподавателей математики, физики и биологии, а именно на экземпляры класса TTeacher.
 

Читать дальше
Категория: delphi 7 | Добавил: ghost_mod (14.09.2016)
Просмотров: 407 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: