Hi
ich wollte mich heute etwas mehr mit der
OOP in Delphi auseinander setzen.
Ich selbst kann schon C++ und Java und dadurch dürfte das eigentlich kein Problem sein.
...
Nun sind mir die Propertys besonders neu ... in C++ und Java muss ich ja mit Gettern und Settern arbeiten.
Naja Propertys scheinen mir da auch nicht groß was anderes zu sein ... quasi ein Konstrukt, was automatisch erkennt, ob der Getter oder der Setter aufgerufen werden soll.
Nun habe ich folgende winzige Klasse entwickelt um mir das Prinzip der Propertys vor Augen zu führen ... aber ich erhalte eine komische mir noch nicht ganz klare Ausgabe:
Ford Focus
200
Ford Focus
320
Hier ist mein Delphi Code ... Mir ist bewusst das ich vll die Klasse besser in eine andere
Unit ausgelagert hätte ... aber zu Übungszwecken reichts ja
Delphi-Quellcode:
program Klassentest_Projekt;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TAuto = class
private
FGeschw: Integer;
FName: string;
function GetGeschw: Integer;
procedure SetGeschw(Value: Integer);
function GetName: string;
procedure SetName(Value: string);
public
property Geschwindigkeit: Integer read GetGeschw write SetGeschw;
property Name: string read GetName write SetName;
constructor Create(Name: string);
end;
function TAuto.GetGeschw: Integer;
begin
Result := FGeschw;
end;
procedure TAuto.SetGeschw(Value: Integer);
begin
FGeschw := Value
end;
function TAuto.GetName: string;
begin
Result := FName;
end;
procedure TAuto.SetName(Value: string);
begin
FName := Name;
end;
constructor TAuto.Create(Name: string);
begin
FName := Name;
end;
var
Auto: TAuto;
begin
{ TODO -oUser -cConsole Main : Hier Code einfügen }
Auto := TAuto.Create('Ford Focus');
Writeln(Auto.Name);
Auto.Geschwindigkeit := 200;
Writeln(Auto.Geschwindigkeit);
Auto.Name := 'Porsche Turbo';
Auto.Geschwindigkeit := 320;
Writeln(Auto.Name);
Writeln(Auto.Geschwindigkeit);
Readln;
end.
Wieso kommt da nun so eine komische Ausgabe.
Ich habe doch den Namen des Autos auf 'Porsche Turbo' gestellt.
Hängt das vll irgendwie mit dem constructor zusammen.
Anders kann ich mir das nicht vorstellen.
Ich hoffe ihr könnt mir helfen ... na klar könnt ihr das
ist bestimmt nur irgendein dummer Fehler
Danke schonmal im vorraus.
MFG
FC