30.07.2015 Aufrufe

Informatik GK 12 Klassen Seite 1 Klassen programmieren ... - Freidling

Informatik GK 12 Klassen Seite 1 Klassen programmieren ... - Freidling

Informatik GK 12 Klassen Seite 1 Klassen programmieren ... - Freidling

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Informatik</strong> <strong>GK</strong> <strong>12</strong><strong>Klassen</strong><strong>Klassen</strong> <strong>programmieren</strong> in Delphi am Beispiel der konkreten Klasse AutoAuto-Baujahr-Typ-Besitzer-Farbe-Kilometerstand-Fahren()-Bremsen()Objekt1: AutoTyp: GolfBaujahr: 1998Besitzer: PeterFarbe: rotKilometerstand: <strong>12</strong>Die Klasse wird definiert mit dem eindeutigen Namen, hier Auto.Die Eigenschaften der Klasse werden benannt, dabei gibt es statischeEigenschaften (Zustand), die sich nicht ändern und dynamische Eigenschaften(Verhalten), die sich ändern können.Unter dem Zustand versteht man Attribute, wie besitzer, typ, farbe, kilometerstand.Der Klasse Auto können nun Instanzen angehören.Attributwerte eines Objektes können sich ändern, z.B. besitzer, farbeDer Zustand nicht. baujahr, typBei der Methode fahren() erhöht sich der Kilometerstand.Anwendung in DelphiZunächst erfolgt die Deklaration der Klasse:type TAuto = classprivateFFarbe: string;FBaujahr,Fkm:integer;procedure SetFarbe(Farbe: string);procedure Setkm(km:integer);publicproperty Farbe: string read FFarbe write SetFarbe;property km: integer read Fkm write Setkm;//Änderbar: kmend;varForm1: TForm1;Meinauto :TAuto;sfarbe: set of (rot,blau,gelb,gruen);<strong>Klassen</strong>definitionWelche Attribute und welchen Zustandhat das ObjektDefinition der Methoden (procedure)//Änderbar: Farbe, auch hier ist dieMethode:SetFarbe() nötigDeklaration der VariablenHier sind nur die genannten Farbenmöglich.<strong>Seite</strong> 1


<strong>Informatik</strong> <strong>GK</strong> <strong>12</strong><strong>Klassen</strong>function faerben(x:string):integer ;beginif x='rot' then result:=clred;if x='blau' then result:=clblue;if x='grün' then result:=cllime;if x='gelb' then result:=clyellow;end;function ffaerben(x:string):string;beginwith meinauto do beginif farbe='rot' then result:='blau';if farbe='blau' then result:='grün';if farbe='grün' then result:='gelb';if farbe='gelb' then result:='rot';end;end;procedure TAuto.SetFarbe(Farbe: string);beginif (farbe='rot') or (farbe='blau') or (farbe='gruen') thenFFarbe:=Farbe;end;procedure Tauto.Setkm(km: integer);beginFkm:=km;form1.Kms.caption:=inttostr(km);end;procedure TForm1.Button1Click(Sender: TObject);beginshowmessage(meinauto.farbe);end;procedure TForm1.Farbe_neuClick(Sender: TObject);beginIm folgenden werden alle Methodendefiniert,SetFarbe() weist dem Auto die FarbezuSetKm erhöht den KilometerstandMeinAuto.FFarbe:=ffaerben(MeinAuto.Farbe);Kms.Color:=faerben(MeinAuto.Farbe);end;procedure TForm1.BJClick(Sender: TObject);beginshowmessage(inttostr(meinauto.FBaujahr));end;procedure TForm1.FahrenClick(Sender: TObject);beginFahrtimer.enabled:=true;end;procedure TForm1.StopClick(Sender: TObject);beginFahrtimer.Enabled:=false;end;procedure TForm1.FahrtimerTimer(Sender: TObject);beginmeinauto.km:=meinauto.km+1;end;procedure TForm1.Zeige_kmClick(Sender: TObject);beginshowmessage(inttostr(meinauto.fkm));end;<strong>Seite</strong> 2


<strong>Informatik</strong> <strong>GK</strong> <strong>12</strong><strong>Klassen</strong>procedure TForm1.Speichere_AutosClick(Sender: TObject);varF: TextFile;s :string;Hier wird die Autoliste aufFestplatte gespeichert.beginAssignFile(F, 'autos.txt');Rewrite(F);for i:=0 to autoliste.Count-1 do beginWriteln(F,autoliste .items[i] );// showmessage(autoliste .items[i]);end;CloseFile(F);end;procedure TForm1.Hole_AutolisteClick(Sender: TObject);vars :string;F: TextFile;Hier wird die Autolistevon HD geholt.beginautoliste.clear;{$i-}AssignFile(F, 'auto.txt'); { File selected in dialog }Reset(F);repeatReadln(F, S);autoliste.Items.Add(s);until eof(F);CloseFile(F);{$i+}if fileexists('auto.txt')=false then showmessage('Die Datei existiertnicht');end;procedure TForm1.Baue_AutosClick(Sender: TObject);begin{Aufgabe:Es sollen hier Autos, in den Farben rot, gelb, blauund grünmit beliebigem Baujahr erzeugt werden. Die Daten werdendabei aus der Datei Autos.txt geholt. Die alten Autossollen dabeiüberschrieben werden. Existieren mehr alte als neueAutos, sollendie überzähligen gelöscht werden.}end;Noch nicht implementiert.Hier kann manversuchen,selbst neue Autoszu bauen mit derWunschfarbe aus denvier vorhandenen usw.beginfor i:=1 to 3 do beginMeinAuto[i]:=TAuto.Create;MeinAuto[i].FFarbe:='rot';MeinAuto[i].FBaujahr:=1980+i;MeinAuto[i].SetFarbe('rot');MeinAuto[i].Farbe:='rot';MeinAuto[i].Fkm:= 0;end;Auto_Nr:=i-1;Hier wird sozusagen derAutostamm erzeugt.<strong>Seite</strong> 5


<strong>Informatik</strong> <strong>GK</strong> <strong>12</strong><strong>Klassen</strong>end.<strong>Seite</strong> 6

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!