Sauberer Programmierstil?

K

Kiel88

Gast
Hallo,
nehmen wir an, ich habe die Klassen KlasseA und Klasse B.
Klasse A benötigt für eine Methode einen Wert aus Klasse B. Meine Frage ist, was der eleganteste oder sagen wir "beste" Weg in der Java Welt ist, um sich einen Wert aus einer anderen Klasse zu holen bzw. aus dem Objekt einer anderen Klasse. Der einfachste Weg und unschönste ist, dass ich in Klasse B einfach eine publik deklarierte Variable habe, wo ich den Wert direkt auslesen kann. Dann gibt es die etwas schönere Variante, wo ich eine private Variable habe und den Wert mittels einer Get-Methode auslese. Das weiß ich soweit. Wie gehe ich aber mit diesem Wert, den ich in der Klasse A dann erhalten habe, um.
Nehmen wir an, ich will den Wert aus Klasse B in Klasse A einfach auf der Konsole ausgeben. Haue ich dann direkt in das System.out.println die get-Methode
Java:
public class KlasseA {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        KlasseB b = new KlasseB();
        System.out.println(b.getB());
    }
}
Java:
public class KlasseB {
    private int B = 1;

    public int getB() {
        return B;
    }
}


Oder speichere ich den Wert erst in einer lokalen Variable zwischen und arbeite im System.out.println mit der lokalen Variable?
Java:
public class KlasseA {
        private int i;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        KlasseB b = new KlasseB();
        I = b.getB();
        System.out.println(i);
    }
}
Java:
public class KlasseB {
    private int B = 1;

    public int getB() {
        return B;
    }
}
Oder gibt es noch eine Möglichkeit, das ganze "schöner" zu gestalten.
Hintergrund ist, dass ich an einer Programmieraufgabe sitze, wo nachher das Programm nicht nur funktionieren muss, sondern auch der Programmierstil so gut wie möglich sein soll.
Danke für eure Hilfe.
 
K

Kiel88

Gast
Variante1 ist wohl schöner. Habe gerade in den Unterlagen einer Uni gelesen, dass "Keep it as simple as possible" ein gängiges Motto ist.
 

stg

Top Contributor
In deinem konkreten Fall hier ist das relativ egal, bzw deine Variante 1 und Variante 2 sind quasi identisch.

Viel interessanter ist die Frage, die du dir eigentlich stellen solltest:
Wieso ist der Wert i in Klasse B und nicht in Klasse A, wenn du ihn doch in Klasse A benötigst? Ist der Wert also wirklich in der "richtigen" Klasse?
Oder, falls es tatsächlich so ist, dass der Wert i an der "richtigen" Stelle gespeichert wird:
Kann Klasse A vielleicht besser Klasse B auffordern, etwas zu tun (hier die Ausgabe schreiben), als sich den Wert aus B zu holen um damit selbst etwas zu machen?
Allgemein kann man solche Fragen aber nicht beantworten.

Grundsätzlich solltest du von Anfang an Wert auf Kapselung legen, sprich Funktionalität und die dafür notwendigen Daten sollten" möglichst nah beieinander" stehen, im besten Fall in der selben Klasse.
Außerdem finde ich einen einheitlichen Programmierstil und das Einhalten von Code-Conventions wichtig, sowie eine saubere Dokumentation durch java-doc-Kommentare.

Für den Anfang (!) ist das auch erst einmal genug. Nach und nach wirst du lernen Standard-Aufgaben mit bewährten Entwurfsmustern zu lösen, usw..
 
K

Kiel88

Gast
Danke für die Ausführungen. Der Wert i ist an der richtigen Stelle gespeichert. Klasse B stellt einen Timer dar, der nach einem gewissen Prinzip einen Wert ausgibt, den Klasse A zur Bearbeitung eines Objektes benötigt. Die beiden Klassen arbeiten über ein Interface zusammen. Daher ist die Trennung in diesem Fall schon "notwendig", denke ich.
So habe ich aber schon mal einen guten Leitfaden bzw. Fragenkatalog, an den ich mich halten kann, wenn ich ein Programmkonzept entferne.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Schaltjahr: "sauberer" Code Java Basics - Anfänger-Themen 4
E Mein erstes Java Projekt - Sauberer code? Java Basics - Anfänger-Themen 28
D Was ist performanter und/oder sauberer? Java Basics - Anfänger-Themen 8
F Sauberer Programmierstyle: Klassenvariaben in Methoden benutzen? Java Basics - Anfänger-Themen 5
S sauberer Stil von return Wert (try, catch, finally) Java Basics - Anfänger-Themen 9
Avalon Programmierstil beim Mocken Java Basics - Anfänger-Themen 45
S Zugriff auf protected Fields = guter Programmierstil? Java Basics - Anfänger-Themen 11
M Best Practice Programmierstil Graphen-A*-Suche Java Basics - Anfänger-Themen 5
F Erste Schritte Frage zum Programmierstil Java Basics - Anfänger-Themen 11
A OOP Fragen zu Programmierstil Java Basics - Anfänger-Themen 18
I Programmierstil Java Basics - Anfänger-Themen 64
E Richtiger Programmierstil ? Java Basics - Anfänger-Themen 51
M Sind ternäre Operatoren für einen guten Programmierstil wichtig ? Java Basics - Anfänger-Themen 10
M Programmierstil Java Basics - Anfänger-Themen 14
B Frage zu Programmierstil: sollte Hauptklasse nur main enthalten? Java Basics - Anfänger-Themen 6
G Guter Programmierstil? Java Basics - Anfänger-Themen 8
G Guter Programmierstil? Java Basics - Anfänger-Themen 4
D Programmierstil - Bei Vererbung welchen Typ benutzen? Java Basics - Anfänger-Themen 8
Bernasconi Programmierstil / Wann eine neue Datei? Java Basics - Anfänger-Themen 5
K guter Programmierstil Java Basics - Anfänger-Themen 3
C Programmierstil und OOP Java Basics - Anfänger-Themen 7
M Programmierstil Java Basics - Anfänger-Themen 17
D Programmierstil Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben