Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Arten der Variablen Deklaration


spoof - Di 17.09.13 20:07
Titel: Arten der Variablen Deklaration
Hallo, ich habe eine Frage bezüglich der Deklaration von Variablen.
Wie ich es in der Schule gelernt habe, sollen wir variablen immer im localen Bereich declarieren, in ausnahmefällen global.
Jetzt hab ich aber schon desöfteren gesehen dass viele oben im quelltext unter privat und public deklarieren.
Wo ist der unterschied? Und gibt es noch andere möglichkeiten?


IhopeonlyReader - Di 17.09.13 20:14

unter global sind sie überall nutzbar, also immer wenn die unit eingebunden ist.

Wenn sie unter private sind, besitzt jede klasse den typen !
hast du also form1, form2: TFormX;
so besitzt form1 eine variable und form2 eine variable, wäre sie global so hätten beide dieselbe.

andere möglichkeiten: private, public, global, local, (protected)

Moderiert von user profile iconNarses: Beiträge zusammengefasst

sonst schau dir mal folgenden Link an:
http://www.delphi-treff.de/object-pascal/variablen-und-konstanten/


Nersgatt - Mi 18.09.13 07:15

user profile iconspoof hat folgendes geschrieben Zum zitierten Posting springen:
Wie ich es in der Schule gelernt habe, sollen wir variablen immer im localen Bereich declarieren, in ausnahmefällen global.

Ich würde das etwas anders formulieren. Denn es gibt zwischen "lokal" und "global" noch ziemlich viele Zwischenstufen. Ich würde den Schülern beibringen "Deklariert die Variablen so lokal wie möglich und so global wie nötig".

Mal ein paar Beispiele für die Abstufung:
  1. Deklaration innerhalb einer Procedure/Function: Die Variable kann nur innerhalb dieser Procedures/Functions genutzt werden.
  2. Deklaration im Abschnitt "private" einer Klasse: die Variable kann innerhalb der Klasse (Formulare sind auch Klassen) und von Klassen, die sich in der selben Unit befinden, von allen Procedures/Functions genutzt werden.
  3. Deklaration im Abschnitt "protected" einer Klasse: die Variable kann von der Klasse selbst und von abgeleiteten Klassen genutzt werden.
  4. Deklaration im Abschnitt "public" einer Klasse: Auf die Variable kann "von außen", also über eine Instanz der Klasse, zugegriffen werden.
  5. Deklaration Global: die Variable kann von überall aus angesprochen werden.


WasWeißDennIch - Mi 18.09.13 08:18

Wobei man im public- bzw. published-Abschnitt üblicherweise keine Variablen deklariert, sondern Properties, die intern dann auf private Variablen zugreifen.


jaenicke - Mi 18.09.13 08:35

user profile iconWasWeißDennIch hat folgendes geschrieben Zum zitierten Posting springen:
Wobei man im public- bzw. published-Abschnitt üblicherweise keine Variablen deklariert, sondern Properties, die intern dann auf private Variablen zugreifen.
Das sind dort streng genommen Felder und keine Variablen, wenn man es genau nimmt. ;-)