Zum Inhalt springen

Eine OOD Frage


paule22

Empfohlene Beiträge

Hallo,

Wir haben eine Gruppe von Studenten, die einen Vollzeit und die anderen

Teilzeit. Beide haben eine Matrikelnummer. Aber sie unterscheiden sich in der

Anzahl der Wochenstunden und andere Attributen. Wir wollen nun eine Liste

über alle Studenten ausdrucken.

Nun zur Frage: Wie muss das oder müssen die Objekte aussehen, die die

Studenten repräsentieren?

Hinweis: Aus einem Teilzeitstudenten kann ein Vollzeitstudent werden und

umgekehrt. Und das auch mehrmals.

Wie schaut die Lösung aus ?

Bitte keinen Quellcode posten, sondern verbale Beschreibungen ...

Viel Spass

paule22

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vaterklasse: Student. (Mit gleichen Attributen und Methoden beider Unterklassen)

Sohnklassen: Teilzeit- und Vollzeitstudent. (Unterschiedliche Attribute und Methoden der Teilzeit- und Vollzeitstudenten.

Und wenn die Objekte beider Sohnklassen hin und her switchen sollen, dann solltest Du mal ein UseCase-Szenario erstellen.

BTW: Ich glaube das gehört auch nicht in den DT, sondern zu Hodata ins Projektmanagement.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bitte keinen Quellcode posten, sondern verbale Beschreibungen ...

Hier die Fremdwortaufschlüsselung:

Das "Bearbeiten" (Verschieben, Kopieren, Wechseln, Befüllen, Verändern, Löschen, Erzeugen) der Studenten würde ich noch in eine Konverterklasse (vielleicht besser Bearbeiterklasse) auslagern -> Es wäre vom Design her nicht korrekt, wenn die Studentenklassen auf Member (Friend-Zugriffe, also direkt auf die internen Objektdaten ohne die Schnittstellen zu benutzen) gegenseitig zugreifen dürfen (für die Konverterklasse gilt das allerdings nicht unbedingt - stichwort "verbergen von Schnittstellen")

Außerdem gehört noch wenigstens ein parametrisiertes (=Template-Klasse, welches durch einen Typ, z.B. Zeiger auf Studenten parametrisiert wird - das nennt sich halt so) Array (oder sonst eine Containerklasse zum Verwalten von Objekten, was das ist sollte eigentlich jeder OODler wissen) zum Klassendesign.

Eigentlich sind das alles Grundbegriffe vom OOD - und darum ging´s doch in der Frage, oder? Die Syntax sollte sich dem Themenkreis anpassen, damit man mit anderen einen Nenner finden kann. OOD hat sehr wohl eine eigene Sprache. Wer schon wie tief im Thema drinsteckt kann man ja nie im Voraus wissen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ah, du meinst parameterized class oder auf deutsch eine generische Klasse.

Nun ja, da es die in Java (noch) nicht gibt und du dich imho etwas "unlücklich" ausgedrückt hast, habe ich nicht erkannt was du meinst. ;)

Da es hier erst mal nur um einen Objekttyp Studenten geht, glaube ich nicht, dass das gefordert ist.

Und das es irgendwo nachher Container Klassen geben muss, sollte klar sein. Egal ob man da eigene oder vom Framework zur Verfügung gestellte benutzt.

Ist in diesem Fall aber imho ebenfalls nicht nötig.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Stimmt, auf deutsch heißt das "generisch", aber irgendwie gefällt mir das Wort einfach nicht - deshalb hab ich das etwas verdrängt und mir Template angewöhnt (geht leichter von der Zunge).

Java ist eben wie C++ auch noch nicht 100% OO... außer Smalltalk ist das meines Wissens bis jetzt eben keine Programmiersprache, aber ob es dort "generische" ... nein ... Template-Klassen gibt bin ich mir auch nicht sicher, weil ich mich mit ST nicht auskenne.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 Wochen später...
Original geschrieben von Crush

Stimmt, auf deutsch heißt das "generisch", aber irgendwie gefällt mir das Wort einfach nicht - deshalb hab ich das etwas verdrängt und mir Template angewöhnt (geht leichter von der Zunge).

Java ist eben wie C++ auch noch nicht 100% OO... außer Smalltalk ist das meines Wissens bis jetzt eben keine Programmiersprache, aber ob es dort "generische" ... nein ... Template-Klassen gibt bin ich mir auch nicht sicher, weil ich mich mit ST nicht auskenne.

Was da unglücklich ausgedürckt sein soll versteh ich nicht ganz... :confused:

Template-Klassen gibst in Smalltalkt nicht... Smalltalk ist dynamisch typisiert und voll objektorientiert mit einer gemeinsamen Oberklasse Objekt für alle Klassen.

In Smalltalk sind auch keine Zeiger, keine Casts, keine virtuellen Methoden, keine Operatoren erforderlich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Operatoren:

Klar gibt es die in Smalltalk, jedoch nicht in der Art, wie sie in anderen Programmiersprachen vorkommen. Smalltalk behandelt alle Operatoren gleichwertig, nämlich als Methoden/Nachrichten, die an ein Objekt gesendet werden.

Nebenbei, Methoden sind in Smalltalk ebefalls Objekte.

Pointer:

Smalltalk ist dynamisch getypt (Java hingegen ist streng getypt, es muss also zu jeder Zeit der Typ einer Variable feststehen)

Der Typ einer Variable steht erst zur Laufzeit zur Verfügung. Grund dafür ist Folgender: Alle Variablen sind in Smalltalk als Speicheradressen, also Zeiger oder Pointer, realisisert. An dieser Speicheradresse, steht dann das Objekt. Damit kann erst der Typ des Objektes bestimmt werden, wenn die Adresse im Speicher ausgewertet wird. Da alles über Zeiger adressiert wird merkt dies

der Entwickler gar nicht mehr.

Virtuelle Methoden:

In Smalltalk werden alle Methoden prinzipiell erst zur Laufzeit gebunden.

Ich hoffe, dass man meinen Erklärungsversuch nachvollziehen kann. So Dinge, wie pointer oder casts kenne ich nur aus der Theorie, weil ich mich damit in Smalltalk nicht rumschlagen muss.

Wenn du mir ein Beispiel nennst kann ich dir genauer sagen, wie man dies in Smalltalk realisiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...