Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Bräuchte Hilfe beim Implementieren von Klassen
Erivium - Di 20.10.09 15:24
Titel: Bräuchte Hilfe beim Implementieren von Klassen
Hallo miteinander, :wave:
ich versuche mir momentan mehr oder weniger erfolgreich die Klassenimplementation unter Delphi beizubringen, und bräuchte da ein wenig Hilfe von euch.
Kennt ihr eventuell Tipps, Hilfethreads oder Tutorials, die dort den Einstieg erleichtern? Mir fällt es nämlich seitdem ich bisher ohne derlei Vereinfachungen gearbeitet habe ziemlich schwer da Fuß zu fassen...
Konkretere Fragen die sich mir momentan noch stellen sind auch beispielsweise:
Die korrekte Implementierung in eine neue Unit. Wie gehe ich da am besten vor? Was kommt beispielsweise unter den Public oder Private Bereich?
Wie verwende ich Set und Get-Methoden in der Hinsicht richtig?
Ich hoffe ihr könnt mir da etwas auf die Sprünge helfen. :oops:
Vielen Dank schon mal,
liebe Grüße
HelgeLange - Di 20.10.09 16:08
ein paar Sachen kann ich Dir schnell beantworten :
private Bereich : alle die Mitgleider der Klasse, die für ein vererbtes Objekt nicht mehr sichtbar sein sollen. Heisst, was Du dort deklarierst, ist unsichtbar für jede davon abgeleitete Klasse. Ausnahme ist, wenn sie sich in der gleichen physikalischen Datei befinden.
protected Bereich : Sichtbar für abgeleitete Klassen, aber nicht von aussen. Heisst, derjenige, der das Objekt erzeugt, kann den protected Bereich nicht sehen.
public Bereich : Sichtbar innen und aussen.
published Bereich : erscheint im Objekt-Inspektor.
Und die Frage zu Get und Set Methoden : Die Pi-mal-Daumen-Regel ist, dass Du sie nur dann brauchst, wenn Du auf das Ändern der Variable etwas machen willst (Set) oder wenn Du die Variable berechnen/holen musst (Get). Ansonsten reicht der Variablenname in der Deklaration aus :
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| type TMyClass = class(TComponent) private FsMyString : String; published property MyString : String read FsMyString write FsMyString; end; |
In dem Fall müssen alle abgeleiteten Klassen über die property MyString zugreifen, da die variable selbst private ist.
Erivium - Mi 21.10.09 09:37
Danke euch schon mal für die Antworten. Ich habe mir nun auch ein Buch nochmal zur Vertiefung des gelernten bestellt.
Eine zusätzliche Frage noch: Kann ich beispielsweise in der Klasse eine Variable die im Public Bereich steht auf den Private Bereich zugreifen lassen?
Habe ich das dann richtig verstanden, dass das eigentliche Programm dann allerdings nur auf die Public Variablen zugreifen kann?
Set&Get Methoden werden also in der Regel dazu gebraucht um mit den Variablen zu arbeiten? Wie füge ich denn dann die Implementierten Set&Get Methoden ins Hauptprogramm ein, oder müssen die nur in der Klasse deklariert werden?
Gausi - Mi 21.10.09 11:19
Die Setter und Getter sind in aller Regel private Methoden der Klasse. Sie müssen dann auch in der Klasse implementiert werden.
Einfaches Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| type TMyClass = class private fMyVar: Integer; procedure fSetMyVar(value: Integer); function fGetMyVar: Integer; public property MyVar read fGetMyVar write fSetMyVar;
end;
implementation
procedure TMyClass.fSetMyVar(value: Integer); begin fMyVar := Value; end;
function TMyClass.fGetMyVar: Integer; begin result := fMyVar; end; |
Außeralb der Klasse (bzw. der Unit) ist dann nur MyVar sichtbar. In dem Setter kann man dann z.B. ungültige Eingaben abfangen, korrigieren und/oder eine Fehlermeldung ausgeben.
Erivium - Fr 23.10.09 13:52
Danke für eure Hilfe. Mir ist schon einiges klarer.
Eine kleine Frage noch. Ich habe mir jetzt das Buch Delphi for Kids mal angeschaut. Okay ein Kid bin ich nun nicht mehr so ganz, aber es geht mir ja nur um den lernerfolg. Wie groß ist denn die abgedeckte Grundlage nachdem man das Buch durchgearbeitet hat. Kann man dann von sich behaupten gut mit dem Programm umzugehen, oder sind da nur einige Grundzüge erklärt.
Ich weiß, das lässt sich pauschal nicht leicht beantworten, aber vielleicht mag sich ja jemand von euch dazu äußern.
Dankeschön.
thepaine91 - Fr 23.10.09 17:00
Werden viele grundlegende Dinge erklärt mir hat es sehr gut geholfen beim Einstieg und kann es nur weiter empfehlen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!