Sign in Join
Wiki copytemporary

Class/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Class/de

OldNewLine
1+\
2+Zurück zu den [[Data type/de|Datentypen]].\
3+Zurück zu den [[Reserved words/de|reservierten Wörtern]].\
4+\
5+=Die Speicherverwaltung einer Klasse=
6+
7+## Der Speicherbedarf einer Klasse
8+
9+Der Speicherbedarf einer Klasse entspricht dem Speicherbedarf aller ihrer Elemente.\
10+Das heisst, der Speicherbedarf einer Klasse ist sehr individuell und es kann keine eindeutige Aussage dazu gemacht werden.\
11+\
12+==Der Speicherort einer Klasse== Eine Klasse wird auf dem Heap gespeichert und über einen Zeiger auf dem Stack referenziert.\
13+.\
14+=Bestandteile (Objekte) einer Klasse= Eine Klasse ist ein strukturierter Datentyp, der sich aus folgendem zusammensetzen kann:\
15+* Variablen\
16+* Konstanten\
17+* Konstruktor\
18+* Destruktor\
19+* Initialisierungsteil\
20+* Funktionen\
21+* Pozeduren\
22+* Eigenschaften\
23+\
24+=Klassentypen= Eine Klasse kann:\
25+* eine Basisklasse sein, d. h. die Klasse wird von keiner anderen Klasse abgeleitet.\
26+* eine abgeleitete Klasse sein.\
27+** Eine abgeleitete Klasse kann niemals von mehr als einer Klasse (Elternklasse) abgeleitet sein.\
28+** Eine abgeleitete Klasse erbt (übernimmt) die Eigenschaften, Funktionen und Prozeduren der Elternklasse.
29+
30+- - Eine abgeleitete Klasse kann die geerbten Eigenschaften, Funktionen und Prozeduren überschreiben bzw. überladen.
31+- eine Elternklasse sein
32+ - Eine Elternklasse gibt ihre Eigenschaften, Funktionen und Prozeduren an die abgeleitete Klasse weiter.
33+ - Eine Elternklasse gibt alle von ihrer eigenen Elternklasse geerbten Eigenschaften, Funktionen und Prozeduren an die abgeleitete Klasse weiter.\
34+
35+\
36+==Deklaration einer Basisklasse== Beispiel:\
37+
38+``` pascal
39+type
40+ TTest = class
41+ private
42+ { private declarations }
43+ public
44+ { public declarations }
45+ end;
46+```
47+
48+\
49+==Deklaration einer abgeleiteten Klasse== Beispiel:\
50+
51+``` pascal
52+type
53+ TTest = class(TObject)
54+ private
55+ { private declarations }
56+ public
57+ { public declarations }
58+ end;
59+```
60+
61+\
62+Erweitertes Beispiel:\
63+
64+``` pascal
65+type
66+ TTest = class(TObject)
67+ private
68+ FSomeVar: integer;
69+ public
70+ constructor Create; overload; // Überlädt den Konstruktor der Elternklasse
71+ constructor Create(Args: array of integer); overload;
72+ destructor Destroy; override; // Überschreibt den Destruktor der Elternklasse
73+ function GetSomeVar;
74+ procedure SetSomeVar(newvalue: integer);
75+ published
76+ property SomeVar: integer read GetSomeVar write SetSomeVar default 0;
77+ end;
78+```
79+
80+\
81+
82+# Sichtbarkeit von Objekten
83+
84+Die einzelnen Sichtbarkeitsstufen <b>private</b>, <b>protected</b>, <b>public</b> und <b>published</b> sind nach ihrer Sichtbarkeit absteigend angeordnet.\
85+Das heisst, die höchste Sichtbarkeitsstufe (published) befindet sich unten.\
86+\
87+
88+``` pascal
89+type
90+ TTest = class(TObject)
91+ private
92+ { Nur die Objekte der eigenen Klasse können diese Objekte sehen }
93+ protected
94+ { Nur die Objekte der eigenen Klasse und alle davon abgeleiteten Klassen können diese Objekte sehen }
95+ public
96+ { Öffentliche Objekte können überall da gesehen werden, wo die Klasse verwendet wird }
97+ published
98+ { Hat die gleiche Sichtbarkeit wie public. Elemente die published sind werden auch im Objektinspektor angezeigt }
99+ end;
100+```
101+
102+---
103+*From the Free Pascal wiki, page "Class/de", as it stood on 2020-02-10 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history