Hallo,
in einer Programmieraufgabe komme ich aktuell nicht weiter. Das Thema ist "Kapselung und Zugriffsmodifizierer ".
Die aktuelle Aufgabe lautet:
Hier stehe ich irgendwie auf dem Schlauch. Der Code "alteBox" in Box( Box alteBox ) ist für mich unverständlich. Kommt dort der Name für das Box Objekt rein, die ich in der main class erst erstelle?
Ich habe das mal versucht aber beim testen kommt immer 0 raus, weil der Code wohl doch nicht die Werte von box Objekt sich zieht.
Kann aber auch sein, dass ich die Zugriffsmethode nicht richtig verwende.
Hier ist der aktuell Code:
in einer Programmieraufgabe komme ich aktuell nicht weiter. Das Thema ist "Kapselung und Zugriffsmodifizierer ".
Die aktuelle Aufgabe lautet:
Fügen Sie der Box-Klasse einen neuen Konstruktor hinzu:
Box( Box alteBox )
Der Konstruktor erzeugt ein neues Box-Objekt mit genau den gleichen Dimensionen des übergebenen Box-Objekts alteBox.
Natürlich wird das alte Objekt nicht verändert.
Fügen Sie jetzt einige Zugriffsmethoden hinzu.
Eine Zugriffsmethode ist eine Methode, die verwendet werden kann, um auf
private Variablen (und andere Variablen) eines Objekts zuzugreifen:
public double getLaenge()
public double getHoehe()
public double getBreite()
Jede dieser Methoden gibt bloß den Wert einer Instanzvariablen zurück. Da das Objekt unveränderbar ist, gibt es keine Zugriffsmethode, um die Instanzvariablen zu ändern. Testen Sie Ihr Programm mit der geänderten Testklasse der vorherigen Aufgabe.
Hier stehe ich irgendwie auf dem Schlauch. Der Code "alteBox" in Box( Box alteBox ) ist für mich unverständlich. Kommt dort der Name für das Box Objekt rein, die ich in der main class erst erstelle?
Ich habe das mal versucht aber beim testen kommt immer 0 raus, weil der Code wohl doch nicht die Werte von box Objekt sich zieht.
Kann aber auch sein, dass ich die Zugriffsmethode nicht richtig verwende.
Hier ist der aktuell Code:
Java:
class Box
{
// Variablen
private double breite;
private double länge;
private double höhe;
// Konstruktoen
Box (double breite, double länge, double höhe)
{
this.breite = breite;
this.höhe = höhe;
this.länge = länge;
}
Box (double seite)
{
breite = seite;
höhe = seite;
länge = seite;
}
Box (Box altebox)
{
getLänge();
getHöhe();
getBreite();
}
// Methoden
public double getLänge()
{
return länge;
}
public double getHöhe()
{
return höhe;
}
public double getBreite()
{
return breite;
}
public double berechneVolumen()
{
return breite * höhe * länge;
}
private double berechneOberflaecheVorn()
{
return breite * höhe;
}
private double berechneOberflaecheOben()
{
return breite * länge;
}
private double berechneOberflaecheSeitlich()
{
return höhe * länge;
}
public double berechneOberflaeche( )
{
return 2 * berechneOberflaecheVorn() +
2 * berechneOberflaecheOben() +
2 * berechneOberflaecheSeitlich() ;
}
}
class BoxTester
{
public static void main ( String[] args )
{
Box box = new Box(2.5, 5.0, 6.0 );
System.out.println( "Flaeche: " + box.berechneOberflaeche( ) +
" Volumen: " + box.berechneVolumen( ) );
System.out.println( "Laenge: " + box.getLänge() +
" Hoehe: " + box.getHöhe() +
" Breite: " + box.getBreite());
Box boxneu = new Box(box);
System.out.println( "Flaeche: " + boxneu.berechneOberflaeche( ) +
" Volumen: " + boxneu.berechneVolumen( ) );
System.out.println( "Laenge: " + boxneu.getLänge() +
" Hoehe: " + boxneu.getHöhe() +
" Breite: " + boxneu.getBreite());
}
}