mihe7
Top Contributor
Das ist vermutlich nicht mal er selbstDa wiederum bin ich mir nicht sicher
Das ist vermutlich nicht mal er selbstDa wiederum bin ich mir nicht sicher
Genau so meinte ich das.Da wiederum bin ich mir nicht sicher![]()
Das kann kein Mensch lesen.Da stehen ja sogar die Methoden!
Ich zeichne das nachts, hoffe du bist da onDas kann kein Mensch lesen.
Oh, oh...aber ich werde gleich ew dagegen tun.![]()
Ach mihe, ich meint doch "nicht antworten" damitOh, oh...
Lies Aufgabenstellung!Worum geht es denn gerade? Ein UML Klassendiagramm? oder ein Objekt/Sequenz Diagramm?![]()
Wir fidnet ihr eig das Niveau der Aufgabe ?Ich habe zwar 3.829 Beiträge, aber wenn es 1.000 weniger wären würd mich das auch nicht stören.... hehe
Einfach, daran scheitert mit Sicherheit kein erfahrener Programmierer.Wir fidnet ihr eig das Niveau der Aufgabe ?
Viele erfahrene Programmierer sind an dem Projekt beim erst Versuch gescheitert.
Wenn das der Versuch sein soll, an der Eitelkeit zu kratzen, musst Du Dir schon was besseres einfallen lassenViele erfahrene Programmierer sind an dem Projekt beim erst Versuch gescheitert.
Ich glaube deine Erwartung ist zu hoch.Was soll an der Aufgabe schwer sein? Die Regel mit den zwei Instanzvariablen pro Klasse halte ich für schwer machbar in der Praxis. Dadurch entstehen zu viele Klassen oder die Daten werden schlecht gespeichert. Einfaches Beispiel, das mir sofort einfällt sind 3d Koordinaten. Dass die zusammen gehören ist doch klar und da macht es wenig Sinn, eine 2D Koordinate und eine Z Koordinate zu nehmen. Aber natürlich geht es - entweder durch speichern der Daten in einer Instanzvariable (z.B. XML Node) oder eben durch eine Aufteilung (Wäre dann etwas wie ein Binärer Baum. Egal was ich brauche - entsprechend Klassen erstellt mit jeweils 2 Instanzvariablen würde funktionieren).
Aber kommt man hier irgendwo überhaupt in die Versuchung, mehr als zwei Instanzvariablen in einer Klasse unter zu bringen?
Die Map hat einfach eine Datenstruktur für die Felder/Inhalte. Der Rover hat Richtung und Koordinaten.
Also selbst weniger erfahrene Entwickler sollten hier bei der übersichtlichen Aufgabe keine Probleme haben.
Daher ist meine Frage, wo hier die Schwierigkeit sein soll.
Die übliche, nicht so gute, Studentenlösung sähe so aus (und das ist leider kein Scherz...):Aber kommt man hier irgendwo überhaupt in die Versuchung, mehr als zwei Instanzvariablen in einer Klasse unter zu bringen?
class Rover {
int x;
int y;
int[][] feld;
int feldGrößeX;
int feldGrößeY;
String richtung;
int i; //genutzt als Index in Methode xy
Reader reader;//in Methode xz zum Einelsen des Kommandos benutzt;
//Get/Setter für alles
// maximal zwei weitere Methoden, 1,5 davon unsinnig
}
Ich denke ihr habt in eurer ZeitWarum ist feld usw. in der Rover-Klasse? Hätte zu meinen Zeiten nicht weiter begründet eine 6 gegeben...
Also evtl. sollten wir erst einmal klären, wie Du "erfahrene Entwickler" definierst.Ich glaube deine Erwartung ist zu hoch
Nunja - das wäre akzeptabel, wenn da nicht entsprechend etwas anderes unterrichtet wurde. Wir mussten damals an der Uni die Booch Method verwenden. Das war krass fand ich. Booch hatte da gerade das Buch auf Englisch veröffentlicht. Fand ich grausam, da es wenig Sinn gemacht hat in meinen Augen. Da musste alles auch ein Interface und einen Controller haben....Die übliche, nicht so gute, Studentenlösung sähe so aus (und das ist leider kein Scherz...):Java:class Rover { int x; int y; int[][] feld; int feldGrößeX; int feldGrößeY; String richtung; int i; //genutzt als Index in Methode xy Reader reader;//in Methode xz zum Einelsen des Kommandos benutzt; //Get/Setter für alles // maximal zwei weitere Methoden, 1,5 davon unsinnig }
Weil das die einzige Klasse ist. Und das ist keine 6. Die Variablen sind nicht static, daher wird es mehr als die static main Funktion gebenWarum ist feld usw. in der Rover-Klasse? Hätte zu meinen Zeiten nicht weiter begründet eine 6 gegeben...
Ich denke ihr habt in eurer Zeit
Viel tiefer gelernt. Dadurch dass jede Menge neue Module sich entwickelt haben. Kann man schwer den Fokus nicht auf das wichtigste fassen.
Nah, lies mal dann .Nein, Uni ist bei dir nicht schwerer als bei allen anderen oder als früher![]()
Du brauchst nicht den Inhalt aber du lernst da zu denken.@Heyoka955 Mal unter uns, die erste Mathevorlesung (meist ist das Analysis oder so etwas), braucht man zum Lösen informatischer Probleme nie. Das ist einfach eine Hürde um 2/3 der Studierenden zu sieben.
Ich würd sagen, du lernst da auswendigzulernen... Aber naja das ist nur meine Ansicht.aber du lernst da zu denken
Wir sind aber immer noch beim ADIT-Kreis und bewegen uns zwischen A und D, sprich Analyse und Design. Wir warten immer noch auf das Modell.
Du musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.also kenne mich mit uml kaum aus
Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?bitteschön, denke das müsste klappen als grund idee
Keine primitiven Datentypen darf ich verwendenDu musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.
Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?
Jeglicher Vererbung schmeißt du raus. Außer du bist wirklich der Meinung, der „Mars ist eine Karte“ und der „Rover ist eine Bewegung“.
Die Klasse Bewegung ist wahrscheinlich Unsinn, außer du kannst jetzt gut Begründen, warum das eine Klasse ist.
Gleiches für die darin benutzten Klassen Drehung und Bewegung.
Deine beiden Koordinaten-Klassen sind völliger Humbug.
Integer statt int benutzen zu müssen, hast du btw auch falsch verstanden.
Wo steht das?Keine primitiven Datentypen darf ich verwenden
Du musst das nicht in gültiger UML machen, wichtig ist, dass man versteht was du meinst, nicht dass es formal passt.
Hast du irgendeine Antwort in diesem Thread gelesen und verstanden?
Jeglicher Vererbung schmeißt du raus. Außer du bist wirklich der Meinung, der „Mars ist eine Karte“ und der „Rover ist eine Bewegung“.
Die Klasse Bewegung ist wahrscheinlich Unsinn, außer du kannst jetzt gut Begründen, warum das eine Klasse ist.
Gleiches für die darin benutzten Klassen Drehung und Bewegung.
Deine beiden Koordinaten-Klassen sind völliger Humbug.
Integer statt int benutzen zu müssen, hast du btw auch falsch verstanden.
Steht da nicht.Musst bei den Regeln stehen.
Nein: „3. Wrap All Primitives And Strings“. Das meint nicht, einfach immer stumpf den Wrapper-Typ zu nutzen. Primitives sind dabei nämlich auch die Wrapper-Typen in Java.Keine primitiven Datentypen darf ich verwenden
Ja, du brauchst keine Vererbung.Dann würde ich einfach garnichts vererben?
Nein: „3. Wrap All Primitives And Strings“. Das meint nicht, einfach immer stumpf den Wrapper-Typ zu nutzen. Primitives sind dabei nämlich auch die Wrapper-Typen in Java.
Wo steht das?
Objekte sollen eine Bedeutung haben und nicht nur einfache Datenstrukturen sein. Zum Einen bekommen wir so eine Stelle, an der sich Verhalten ausdrücken lässt, zum Anderen können wir die spezifische Typen genauer ausdrücken, welche Operationen auf einem Wert ausgeführt werden können. Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc.
Die Wrapper-Regel bezieht sich auf Methoden und Klassen, die Sie schreiben, nicht auf bestehende Methoden von existierenden Java Klassen. Sie dürften also die println Methode einer Instanz der Klasse PrintStream aufrufen und dabei einen ungewrappten String übergeben.
Die Regel betrifft sowohl Parameter als auch die Rückgabe aller Methoden, die von einer anderen Klasse sichtbar sein könnten, also auf alle Methoden, die nicht private sind.
Die Wrapperklassen dürfen einen String/Primitive im Konstruktor übergeben bekommen und müssen fachlich spezifisch sein, d.h. einen speziellen Zweck haben und nicht einen primitiven Typen oder String allgemein wrappen.
Die Verwendung einer Collection oder eines Optionals, um einen primitiven Datenwert zu verpacken, würden wir als vorsätzliches Umgehen der Regel interpretieren.
Diesen Satz hast du auch gelesen?Gewrappt werden alle primitiven Datentypen (int, long, boolean, etc.), alle korrespondierenden Objekt-Datentypen (Integer, Long, Boolean, etc.) und String, StringBuilder, StringBuffer, etc.
oh wusste nicht was ich da schreiben soll, musste das in uml realisieren können.Diesen Satz hast du auch gelesen?
Integer ist genauso „verboten“ wie int!
Ich finde die Reaktion von Studenten, wenn sie Dinge nicht verstehen, echt bemerkenswert. Anstatt auf die Idee zu kommen, einfach mal zu fragen wie das gemeint ist, machen die einfach irgendwelchen Unsinn.
Vergiss UML.oh wusste nicht was ich da schreiben soll, musste das in uml realisieren können.
Die Verwendung einer Collection oder eines Optionals, um einen primitiven Datenwert zu verpacken, würden wir als vorsätzliches Umgehen der Regel interpretieren.Okay. Geh mal drei Schritte zurück.
Das Zitat zur nicht Verwendung von primitiven Werten - lies es noch mal durch.
Und dann sag uns, ob du es zur Gänze verstanden hast, oder ob du irgendwo fragen hast.
Das war nicht das Zitat.Ich weiß nicht wie ich mir vorstellen soll wie eine Collection einen int ersetzt?
Welches war dasDas war nicht das Zitat.