Kopierkonstruktor / tiefe Kopie

x-trillian

Neues Mitglied
Hallo Leute,

ich soll eine Methode in der Klasse Pflanze implementieren die eine tiefe Kopie erzeugt und habe folgende Vorgabe:

Java:
public class Pflanze {
   private Farbe farbe;
   private String bezeichnung;
   private float preis;
}

public class Farbe{
   private int rot;
   private int gruen;
   private int blau;
}

Wie bekomme ich die Farbe in den Kopierkonstruktor, so dass es dann auch klappt? Hier ist mein bisheriger Versuch, ich bin mir sicher dass es eleganter geht, aber ich bin halt noch relativ am Anfang mit meinen Programmierkenntnissen...:

Java:
public Pflanze(Pflanze pflanze){
     this.bezeichnung = pflanze.bezeichnung;
     this.preis = pflanze.preis;
//     this.farbe.rot = pflanze.farbe.rot;
//     this.farbe.gruen = pflanze.farbe.gruen;
//     this.farbe.blau = pflanze.farbe.blau;
   }

   public Pflanze(){
   }

   public static Pflanze pflanzeKopieren(){
     Pflanze pflanze1 = new Pflanze();    
     pflanze1.bezeichnung = "Rose";
     pflanze1.preis = 3.99f;
//     pflanze1.farbe.rot = 255;
//     pflanze1.farbe.gruen = 255;
//     pflanze1.farbe.blau = 255;
//    
     Pflanze pflanze = new Pflanze(pflanze1);
     return pflanze;
   }
 
Zuletzt bearbeitet von einem Moderator:

flopalko

Bekanntes Mitglied
Schon mal was von gettern und settern gehört?
Außerdem: wenn du eine Kopie der Pflanze willst, warum schreibst du dann hard-coded Werte (Rose und 3.99) rein?
Und noch dazu: lies mal die Grundlagen der OOP. Das was du da fragst steht in so ziemlich jedem Buch ganz am Anfang.
 

Harry Kane

Top Contributor
Wie bekomme ich die Farbe in den Kopierkonstruktor, so dass es dann auch klappt?
Getter und Setter bedarf es innerhalb derselben Klasse nicht. Den Kommentar von flopalko einfach ignorieren.
Wenn du mit "derselben Klasse" die Pflanze-Klasse meinst, hast dun recht. Der TO hat aber von der "Farbe" gesprochen. Und die bekommt man in einer Pflanzen-Kopiermethode nur kopiert, wenn Farbe selber eine Kopiermethode mitbringt oder setter/getter für die drei Farbwerte.
Deswegen: ich bin gegen das ignorieren. Mit seinem Hinweis auf die "hard-coded Werte" hat flopalko ausserdem vollkommen recht.
Weitere Frage von mir: was soll die statische Methode, wenn Pflanze einen Kopierkonstruktor hat?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Klassen Tiefe Kopie mittels Kopierkonstruktor Java Basics - Anfänger-Themen 6
O Kopierkonstruktor Java Basics - Anfänger-Themen 17
L Tiefe Kopie einer Zeile eines zweidimensionalen Arrays Java Basics - Anfänger-Themen 1
T Rekursiv Tiefe eines binären Suchbaums ermitteln Java Basics - Anfänger-Themen 22
V Tiefe Kopie Java Basics - Anfänger-Themen 3
K Rot-Schwarz-Baum min und max-Tiefe Java Basics - Anfänger-Themen 1
Helgon Baumstruktur tiefe N erzeugen Java Basics - Anfänger-Themen 3
N Tiefe im binären Suchbaum Java Basics - Anfänger-Themen 9
B Mehrdimensionales Array + Tiefe Java Basics - Anfänger-Themen 4
? clonen -tiefe Kopie Java Basics - Anfänger-Themen 6
K Tiefe im Binärbaum Java Basics - Anfänger-Themen 2
M Binärer Baum Tiefe Java Basics - Anfänger-Themen 14
I Methoden aufrufe in die Tiefe Java Basics - Anfänger-Themen 5
F Tiefe eines Baumes Java Basics - Anfänger-Themen 6
C Kopie oder Referenz ? Java Basics - Anfänger-Themen 5
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
Furtano OOP Memento Pattern | übergabe einer Kopie des Arrays Java Basics - Anfänger-Themen 0
GianaSisters ArrayList-Kopie verändert Original Java Basics - Anfänger-Themen 5
P Kopie erstellen / addieren von Arrays Java Basics - Anfänger-Themen 5
D Tiefen Kopie Java Basics - Anfänger-Themen 36
N Kopie eines Objektes, die Objekt beeinflusst? Java Basics - Anfänger-Themen 6
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
S Array Kopie zwei in eindimensionales feld Java Basics - Anfänger-Themen 4
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
F 1:1 kopie möglichst effektiv und schnell Java Basics - Anfänger-Themen 7
M Kopie eines Objektes Java Basics - Anfänger-Themen 8
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
C Kopie einer ArrayList: Fehler im Detail? Java Basics - Anfänger-Themen 2
L Referenz vs. Kopie Java Basics - Anfänger-Themen 2
R Kopie erzeugen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben