AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Modell meines Infoprojekts in OOP

Ein Thema von devnull · begonnen am 16. Jun 2005 · letzter Beitrag vom 16. Jun 2005
Antwort Antwort
Seite 2 von 2     12   
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Modell meines Infoprojekts in OOP

  Alt 16. Jun 2005, 19:49
Zitat von devnull:
Ist es erlaubt, in der Klasse Auto (sie besitzt das Objekt Fahrer da im protected...) eine public-Methode namens "getFührerscheinklasse" einzurichten?
Verboten ist es sicher nicht , entspricht aber auch nicht dem Sinn der OOP, denn das Auto hat mit dem Führerschein des Fahrers nichts zu tun. Wie wär's stattdessen mit Auto.getFahrer.getFuehrerscheinklasse?
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Modell meines Infoprojekts in OOP

  Alt 16. Jun 2005, 19:51
Fangs doch anderst an:

TNukleon -> TProton / TNeutron / TElektron -> TMolekül....

Wenn du das fertig hast bis zum Menschen, ( und das alles in OpenGL darstellst, ) gehst in die Geschichte ein!
Felix K.
Zitat:
Siehst du diesen Park da unten?
Jeden Tag lernen sich leute kennen und verlassen einander, und du hast dein ganzes Leben Zeit darin zu gehen!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#13

Re: Modell meines Infoprojekts in OOP

  Alt 16. Jun 2005, 19:58
[ignore Speedmaster]
Warum keine Property "Fahrer"? IMO sollte man von "außen" keine "Get..."/"Set..."-Methoden sehen können.
[/ignore Speedmaster]

[edit] Jedes Auto ist eine Fabrik ?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#14

Re: Modell meines Infoprojekts in OOP

  Alt 16. Jun 2005, 20:00
Zitat von Niko:
Wie wär's stattdessen mit Auto.getFahrer.getFuehrerscheinklasse?
Und wie waers mit einer Property auf den TFahrer-Member? Das ist der Weg, den man in der OOP beschreitet. Wenn du naemlich dem Fahrer des Autos eine Verletzung zufuegen willst (dummes Beispiel, aber egal), musst du schreibend zugreifen. AFAIK ist das mit der Funktion nicht wirklich moeglich (ich kann mich aber auch irren). Also:

Delphi-Quellcode:
type TAuto = class(TObject)
  private
    fFahrer: TFahrer;
  published
    property Fahrer read fFahrer write fFahrer;
end;
Und schon hast du deinen Zugriff. So sollte man es uebrigens fuer alle Member machen, auf die man von aussen zugreifen muss

@Speedmaster: Wenn du etwas sinnvolles beitragen kannst, spricht nichts dagegen. Tipps wie deiner helfen aber nicht wirklich

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von devnull
devnull

Registriert seit: 5. Okt 2003
362 Beiträge
 
Delphi 7 Personal
 
#15

Re: Modell meines Infoprojekts in OOP

  Alt 16. Jun 2005, 20:12
Mit propertys hab ich noch nie gearbeitet. Was es nich so alles gibt?! Das schau ich mir erst nochmal an.
Bis jetzt, hol ich mir die Information über Funktionsaufrufe (sollte auch in OOP legal sein):
  Auto.getFahrer.getfKlasse; Soll genug sein für heute

mfg
devnull
-- Never change a running system --
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Modell meines Infoprojekts in OOP

  Alt 16. Jun 2005, 20:22
Also mit Properties zu arbeiten ist nicht besonders schwer und es ist verdammt praktisch. Dadurch kannst du vor allem bewirken, daß nur gültige Daten angegeben werden. Du könntest also zB beim Erzeugen des Fahrers prüfen, ob es die angegebene Führerscheinklasse überhaupt gibt, usw.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17

Re: Modell meines Infoprojekts in OOP

  Alt 16. Jun 2005, 20:56
Das mit dem TMann/TFrau ist ja wohl geklärt durch TMensch. Du hast doch nach Polymorphie/Vererbung gefragt. Und was hat das Auto mit der Fabrik gemeinsam ? Nichts ! Du willst wohl lediglich darauf hinaus, daß die Fabrik mehrere hat. Bei dem Thema geht es aber darum, welche Dinge sich wiederverwenden lassen, wegen gemeinsamer Eigenschaften. Das ist OOP ! Was nützt also jetzt der Fabrik eine Eigenschaft "Viertürer", die sie von TAuto erbt ? Für das Auto ist das eventuell aber schon wichtig. Die Fabrik hat also mit dem Auto genauso wenig zu tun, wie dieses mit dem Fahrer. Siehe die Schuhgröße. Die ist ja jetzt tatsächlich in Deinem Diagramm drin. Und die habe ich nur deshalb gewählt, weil sie bei dem Auto völlig überflüssig wäre.

Du mußt das Prinzip der Vererbung usw. nochmals komplett überdenken. Und zwar in der Richtung, was jetzt wo gebraucht wird. Dein Beispiel ist auch nicht so gut geeignet, das alles zu erklären. Weil man kaum eine Hierarchie darstellen kann.

So könnte die aussehen :

Delphi-Quellcode:
TKonzern -> TFabrik (erbt vom Konzern alles, hat aber zusätzlich eigenen Standort)

TFahrzeug -> TAuto (4 Räder) -> TPkw -> TKombi (zusätzlich Kofferraumvol.)
                             -> TLkw (x Achsen)

TMensch (egal, ob Führerschein usw.) -> TFahrer
Bei den 3 Basisklassen sehe ich kaum verwertbare Sachen für OOP. Du schleppst eher mehr Ballast mit rum.

Edit : zu früh abgeschickt.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz