Sign in Join
Wiki copytemporary

Class/de: what changed

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

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=
1+Zurück zu den [[Data type/de|Datentypen]].
2+Zurück zu den [[Reserved words/de|reservierten Wörtern]].
3+
64
5+## Contents
6+
7+ * 1 Die Speicherverwaltung einer Klasse
8+ * 1.1 Der Speicherbedarf einer Klasse
9+ * 1.2 Der Speicherort einer Klasse
10+ * 2 Bestandteile (Objekte) einer Klasse
11+ * 3 Klassentypen
12+ * 3.1 Deklaration einer Basisklasse
13+ * 3.2 Deklaration einer abgeleiteten Klasse
14+ * 4 Sichtbarkeit von Objekten
15+
16+# Die Speicherverwaltung einer Klasse
17+
718## Der Speicherbedarf einer Klasse
819
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.
20+Der Speicherbedarf einer Klasse entspricht dem Speicherbedarf aller ihrer Elemente.
21+Das heisst, der Speicherbedarf einer Klasse ist sehr individuell und es kann keine eindeutige Aussage dazu gemacht werden.
22+
2923
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.\
24+## Der Speicherort einer Klasse
3425
35-\
36-==Deklaration einer Basisklasse== Beispiel:\
26+Eine Klasse wird auf dem Heap gespeichert und über einen Zeiger auf dem Stack referenziert.
27+.
3728
38-``` pascal
29+# Bestandteile (Objekte) einer Klasse
30+
31+Eine Klasse ist ein strukturierter Datentyp, der sich aus folgendem zusammensetzen kann:
32+
33+ * Variablen
34+
35+ * Konstanten
36+
37+ * Konstruktor
38+
39+ * Destruktor
40+
41+ * Initialisierungsteil
42+
43+ * Funktionen
44+
45+ * Pozeduren
46+
47+ * Eigenschaften
48+
49+
50+
51+# Klassentypen
52+
53+Eine Klasse kann:
54+
55+ * eine Basisklasse sein, d. h. die Klasse wird von keiner anderen Klasse abgeleitet.
56+
57+ * eine abgeleitete Klasse sein.
58+
59+ * Eine abgeleitete Klasse kann niemals von mehr als einer Klasse (Elternklasse) abgeleitet sein.
60+
61+ * Eine abgeleitete Klasse erbt (übernimmt) die Eigenschaften, Funktionen und Prozeduren der Elternklasse.
62+ * Eine abgeleitete Klasse kann die geerbten Eigenschaften, Funktionen und Prozeduren überschreiben bzw. überladen.
63+ * eine Elternklasse sein
64+ * Eine Elternklasse gibt ihre Eigenschaften, Funktionen und Prozeduren an die abgeleitete Klasse weiter.
65+ * Eine Elternklasse gibt alle von ihrer eigenen Elternklasse geerbten Eigenschaften, Funktionen und Prozeduren an die abgeleitete Klasse weiter.
66+
67+
68+
69+## Deklaration einer Basisklasse
70+
71+Beispiel:
72+
73+```
3974type
40- TTest = class
41- private
42- { private declarations }
43- public
44- { public declarations }
45- end;
75+ TTest = class
76+ private
77+ { private declarations }
78+ public
79+ { public declarations }
80+ end;
4681```
4782
48-\
49-==Deklaration einer abgeleiteten Klasse== Beispiel:\
83+
5084
51-``` pascal
85+## Deklaration einer abgeleiteten Klasse
86+
87+Beispiel:
88+
89+```
5290type
53- TTest = class(TObject)
54- private
55- { private declarations }
56- public
57- { public declarations }
58- end;
91+ TTest = class(TObject)
92+ private
93+ { private declarations }
94+ public
95+ { public declarations }
96+ end;
5997```
6098
61-\
62-Erweitertes Beispiel:\
99+
100+Erweitertes Beispiel:
63101
64-``` pascal
102+```
65103type
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;
104+ TTest = class(TObject)
105+ private
106+ FSomeVar: integer;
107+ public
108+ constructor Create; overload; // Überlädt den Konstruktor der Elternklasse
109+ constructor Create(Args: array of integer); overload;
110+ destructor Destroy; override; // Überschreibt den Destruktor der Elternklasse
111+ function GetSomeVar;
112+ procedure SetSomeVar(newvalue: integer);
113+ published
114+ property SomeVar: integer read GetSomeVar write SetSomeVar default 0;
115+ end;
78116```
79117
80-\
118+
81119
82120# Sichtbarkeit von Objekten
83121
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-\
122+Die einzelnen Sichtbarkeitsstufen **private** , **protected** , **public** und **published** sind nach ihrer Sichtbarkeit absteigend angeordnet.
123+Das heisst, die höchste Sichtbarkeitsstufe (published) befindet sich unten.
124+
87125
88-``` pascal
126+```
89127type
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;
128+ TTest = class(TObject)
129+ private
130+ { Nur die Objekte der eigenen Klasse können diese Objekte sehen }
131+ protected
132+ { Nur die Objekte der eigenen Klasse und alle davon abgeleiteten Klassen können diese Objekte sehen }
133+ public
134+ { Öffentliche Objekte können überall da gesehen werden, wo die Klasse verwendet wird }
135+ published
136+ { Hat die gleiche Sichtbarkeit wie public. Elemente die published sind werden auch im Objektinspektor angezeigt }
137+ end;
100138```
101139
140+
141+
142+Datentypen
143+---
144+Einfacher Datentyp | [[Boolean/de|Boolean]] | [[Byte/de|Byte]] |[[Cardinal/de|Cardinal]] | [[Char/de|Char]] | [[Currency/de|Currency]] | [[Extended/de|Extended]] | [[Int64/de|Int64]] | [[Integer/de|Integer]] | [[Longint/de|Longint]] | [[Pointer/de|Pointer]] | [[Real/de|Real]] | [[Shortint/de|Shortint]] | [[Smallint/de|Smallint]] | [[Word/de|Word]]
145+Zusammengesetzter Datentyp | [[Array/de|Array]] | Class | [[Record/de|Record]] | [[Set/de|Set]] | [[String/de|String]] | [[Shortstring/de|ShortString]]
146+
147+
148+****
149+
102150---
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).*
151+*From the Free Pascal wiki, page "Class/de", as the Internet Archive kept it on 2023-03-31. 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