Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Allgemeines zu Klassen / Objekten

  Alt 26. Feb 2003, 13:34
Nehmen wir mal folgende Klassen oder sind es Objekte als Diskussionsgrundlage:

Klasse / Objekt 1:
Delphi-Quellcode:
type TFooClass = class
  private
    FFooCaption : String;
    procedure SetFooCaption;
    funktion GetFooCaption: String;
    procedure FooCaptionPlusSr;
  public
    constructor create;
end;

procedure TFooClass.create;
begin
  SetFooCaption;
end;

procedure TFooClass.SetFooCaption;
begin
  FFooCaption := 'Hello';
end;

function TFooCaption.GetFooCaption: String;
begin
  result := FFooCaption;
end;

procedure TFooClass.FooCaptionPlusStr;
begin
  FFoocaption := FFooCaption+', world';
end;
Variante 2:
Delphi-Quellcode:
type TFooClass = Class
  private
    FFooCaption: String;
    procedure FooCaptionPlusSr;
  public
    constructor create;
end;

constructor TFooClass.Create;
begin
  FFooCaption := 'Hello';
end;

procedure TFooClass.FooCaptionPlusStr;
begin
  FFoocaption := FFooCaption+', world';
end;
So, der Unterschied sollte klar sein. Mit Variante eins kann ich über Methoden auf die Membervariable FFooCaption zugreifen. Aber man kann ja auch so drauf zugreifen:
Delphi-Quellcode:
var
  FooClass: TFooClass;
  s : String;
begin
  FooClass := TFooClass.Create;
  ...;
  ...;
  s := FooClass.FFooCaption;
Jetzt stellt sich mir die Frage wie macht man es richtig oder sollte man es machen? Immer über Methoden auf die Membervariablen zu greifen oder geht es auch direkt, wie in Beispiel 2? Bitte mit Begründung antworten, sonst nützt es mir nicht viel.

Noch was. Wann müssen / sollen Methoden, Membervariablen unter public deklariert werden?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat