paule22 Geschrieben 11. November 2003 Teilen Geschrieben 11. November 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Geschrieben 11. November 2003 Teilen Geschrieben 11. November 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 11. November 2003 Teilen Geschrieben 11. November 2003 Das "Bearbeiten" der Studenten würde ich noch in eine Konverterklasse auslagern. Außerdem gehört noch wenigstens ein parametrisiertes Array zum Klassendesign. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 11. November 2003 Teilen Geschrieben 11. November 2003 Original geschrieben von Crush Das "Bearbeiten" der Studenten würde ich noch in eine Konverterklasse auslagern. Außerdem gehört noch wenigstens ein parametrisiertes Array zum Klassendesign. Bitte was willst du uns mitteilen? Ich verstehe nur Bahnhof. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bilke Geschrieben 11. November 2003 Teilen Geschrieben 11. November 2003 Original geschrieben von Jaraz Bitte was willst du uns mitteilen? Ich verstehe nur Bahnhof. Gruß Jaraz danke...ich dachte schon ich hätte nichts gelernt,m während meine Ausbildung Stephan (ausgelernter FI_AE) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 11. November 2003 Teilen Geschrieben 11. November 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 11. November 2003 Teilen Geschrieben 11. November 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 12. November 2003 Teilen Geschrieben 12. November 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
paule22 Geschrieben 12. November 2003 Autor Teilen Geschrieben 12. November 2003 Vielen Dank für Eure Antworten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Elo Geschrieben 12. Dezember 2003 Teilen Geschrieben 12. Dezember 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 13. Dezember 2003 Teilen Geschrieben 13. Dezember 2003 In Smalltalk sind auch keine Zeiger, keine Casts, keine virtuellen Methoden, keine Operatoren erforderlich. -> Erforderlich oder möglich? Wenn möglich, dann hört sich das für mich eher wie eine Einschränkung an. Genau 1,3,4 finde ich äußerst praktisch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Elo Geschrieben 14. Dezember 2003 Teilen Geschrieben 14. Dezember 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 14. Dezember 2003 Teilen Geschrieben 14. Dezember 2003 Vielleicht nach meinem Urlaub (also frühestens in 4 Wochen) =8-) Ich fahr nämlich gleich. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.