Einführung Objektorientierung

luluuxs

Aktives Mitglied
Hallo, ich habe eine Aufgabe bekommen, die gegebene Klasse System zum Laufen zu bringen.
Dabei darf ich in ihr nichts verändern, aber verschiedene Klassen hinzufügen.
Die Ausgabe soll:
/home/max/homework
/home/peter/homework
/home/peter
/home/max
sein.
Mein Problem ist, dass ich in meiner Directory-Klasse eine static-Variable erstellt habe, ich denke mal, dass das programmierstiltechnisch
nicht feinste Sahne ist, und, dass die letzten beiden Zeilen meiner Ausgabe dadurch am Ende auch noch ein "/" haben, jedoch finde ich keine Lösung, um
das Problem zu beheben.
Hat jemand einen Tipp für mich ?
LG

Mein bisheriger Code:

Java:
class System {

    public static void main(String[] args) {
        Directory root = new Directory("/");
        Directory home = new Directory(root, "home");
        Directory max = new Directory(home, "max");
        Node homework = new File(tom, "homework");
        Directory peter = new Directory(home, "peter");
        Node homework2 = new File(bob, "homework");
        Node maxNode = max;
        Out.println(homework.getPath());
        Out.println(homework2.getPath());
        Out.println(peter.getPath());
        Out.println(maxNode.getPath());
    }

}

Java:
class Node {

    String path;

    String getPath () {
        return path;
    }

}

class File extends Node {

    File (Node obj, String path) {
        this.path = obj.path + path;
    }

}


class Directory extends Node {

    static String a;

    Directory(String path) {

        this.path = path;
        a = path;

    }

    Directory(Directory objd, String path) {

        this.path = objd.path + path + a;

    }
}
 

Robert Zenz

Top Contributor
Mein Problem ist, dass ich in meiner Directory-Klasse eine static-Variable erstellt habe, ich denke mal, dass das programmierstiltechnisch
nicht feinste Sahne ist, ...
Nein, grundsaetzlich spricht nichts gegen static Variablen. In diesem Falle aber hast du Recht, das sollte man anders loesen.

Hat jemand einen Tipp für mich ?
Du musst dir die Zustaende der Instanzen zur Laufzeit entweder vorstellen oder ansehen. Zum Beispiel:

Java:
Directory root = new Directory("/");
    // root.path == "/"
    // Directory.a == "/"

Directory home = new Directory(root, "home");
    // home.path == "/home/"
    //           root.path +  path  +  a
    //              "/"    + "home" + "/"
    // Directory.a == "home"

Directory max = new Directory(home, "max");
    // max.path == "/home/maxhome"
    //           home.path + path  +  a
    //            "/home/" + "max" + "home"
    // Directory.a == "max"

Wenn du die statische Variable einfach entfernen wuerdest, waere ja fast alles richtig, die fehlt nur das anfuegen eines Pfad-Separators beim zusammenhaengen.

Java:
this.path = objd.path + "/" + path;
 

luluuxs

Aktives Mitglied
Das würde mir fehlen, ja
aber da das "/" von root ist, glaube ich nicht, dass es Sinn macht dies einfach so hinzuzufügen
Was genau meinst du mit den Zuständen?
 

luluuxs

Aktives Mitglied
Okay, danke, ich habs jetzt glaube ich verstanden, ich füge jetzt
Java:
this.path = objd.path + "/" + path;
an, ich war mir nicht sicher, ob das vielleicht die Aufgabe "schummelt", da es vielleicht einen weg ohne static String oder "/" geben könnte mit root.path oder Ähnliches die Ausgabe zun erreichen
 
M

Mart

Gast
dein pfad wächst so
Java:
1. =>  "/"
2. => 1. + "home/"
3. => 2. + "..."
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Objektorientierung Einführung Java Basics - Anfänger-Themen 2
G Gut verständliche Einführung in IO/NIO Java Basics - Anfänger-Themen 9
T Hash Map Java Doc Einführung Java Basics - Anfänger-Themen 9
U ArrayList kurze Einführung Java Basics - Anfänger-Themen 3
B Einführung in Schleifen: Zeilenausgabe mit verdoppeltem Wert. Java Basics - Anfänger-Themen 2
J Einführung in JUnit-Tests Java Basics - Anfänger-Themen 5
E Java Einführung gesucht. Java Basics - Anfänger-Themen 7
G Einführung in Eclipse Java Basics - Anfänger-Themen 2
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
L Einstieg Objektorientierung Java Basics - Anfänger-Themen 10
H Wie geht eigentlich Objektorientierung? Java Basics - Anfänger-Themen 14
L Objektorientierung Java Basics - Anfänger-Themen 6
B Objektorientierung Java Basics - Anfänger-Themen 1
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
T Objektorientierung-Kurze Frage Java Basics - Anfänger-Themen 5
L Hilfe! Objektorientierung Java Basics - Anfänger-Themen 3
S OOP Zusammenhang von Objektorientierung und Ausnahmebehandlungen Java Basics - Anfänger-Themen 6
C Objektorientierung? Java Basics - Anfänger-Themen 5
G Designfrage/Objektorientierung Java Basics - Anfänger-Themen 19
S Methoden Aufgabe zu ""Methoden" und "Objektorientierung" Java Basics - Anfänger-Themen 3
B OOP Programm zur Verdeutlichung von Objektorientierung Java Basics - Anfänger-Themen 7
T Initialisierungen der einzelnen Klassen - Objektorientierung Java Basics - Anfänger-Themen 4
B Objektorientierung Java Basics - Anfänger-Themen 2
W Einstieg Objektorientierung Java Basics - Anfänger-Themen 4
A Objektorientierung Klassen Java Basics - Anfänger-Themen 4
D Objektorientierung / Polymorphismus Java Basics - Anfänger-Themen 8
Spin Objektorientierung . Konzept Java Basics - Anfänger-Themen 4
M Objektorientierung Java Basics - Anfänger-Themen 3
M Objektorientierung - wie macht man's richtig? Java Basics - Anfänger-Themen 3
R ObjektOrientierung Java Basics - Anfänger-Themen 18
D Objektorientierung ? Java Basics - Anfänger-Themen 4
D Objektorientierung Listen Java Basics - Anfänger-Themen 2
J objektorientierung und uml Java Basics - Anfänger-Themen 5
D Objektorientierung - wie konsequent sollte man sein ? Java Basics - Anfänger-Themen 30
D Zuerst Objektorientierung oder GUI ? Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben