Klassen, Vererbung, Konstruktoren

yeahr

Mitglied
Hallo zusammen ich hänge gerade bei einer Umsetzung die ich mir selber überlegt habe.


Ich habe eine Klasse Properties:

Java:
public class Properties {

    protected String name = "";
    protected int weight = 0;
    protected String health = "";
    protected String dnaSequence = "";
    
    
    
    public Properties(String name, int weight, String health
            , String dnaSequence ){
        this.name = name;
        this.weight = weight;
        this.health = health;
        this.dnaSequence = dnaSequence;
    }
   
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getWeight() {
        return weight;
    }
    public void setWeight(int weight) {
        this.weight = weight;
    }

    public String getHealth() {
        return health;
    }
    public void setHealth(String health) {
        this.health = health;
    }
    public String getDnaSequence() {
        return dnaSequence;
    }
    public void setDnaSequence(String dnaSequence) {
        this.dnaSequence = dnaSequence;
    }
 
}


Eine Klasse Organ:
Java:
public abstract class Organ {

    protected boolean transplantable = false;
    protected boolean transplanted = false;
    protected Properties properties;
    
    public Organ(boolean transplantable, boolean transplanted, 
            Properties properties){
        this.transplantable = transplantable;
        this.transplanted = transplanted;
        this.properties = properties;
    }
    
    
    public boolean isTransplantable() {
        return transplantable;
    }
    public void setTransplantable(boolean transplantable) {
        this.transplantable = transplantable;
    }
    public boolean isTransplanted() {
        return transplanted;
    }
    public void setTransplanted(boolean transplanted) {
        this.transplanted = transplanted;
    }
    public Properties getProperties() {
        return properties;
    }
    public void setProperties(Properties properties) {
        this.properties = properties;
    }
}

Und eine Klasse Heart die von Organ erbt:
Java:
public class Heart extends Organ{

    
    public Heart(boolean transplantable, boolean transplanted,
            Properties properties) {
        super(transplantable, transplanted, properties);
        
    }



}

Wie kann ich in der Klasse Heart über Properties bei dem Attribut "weight" den Wert 300 zuweisen? Ich müsste ja nur was in der Klasse Heart dazu schreiben oder? Nur ich komme leider nicht darauf:(. Hoffe mir kann jemand weiterhelfen
 

Volvagia

Top Contributor
properties.setWeight(380);?
Oder wie?

Die Klasse Properties ist bereits in Benutzung, besser du spezifizierst sie wie z. B. OrganProperties. (Keine Ahnung was Organ auf englisch heißt.)
 

yeahr

Mitglied
Erst mal Danke für die Antwort. Ich glaub ich hab mich nicht so klar ausgedrückt. Mit properties.setWeight(300) ist mir klar, dass man es auf 300 setzen kann. Aber Ich will es so machen, dass im Konstruktor in der Klasse "Heart" das Gewicht bei "properties" auf Standard 300 gesetzt wird. Hab es mit properties.setWeight probiert. siehe hier:

Java:
public class Heart extends Organ{

    
    public Heart(boolean transplantable, boolean transplanted,
            Properties properties) {
        super(transplantable, transplanted, properties.setWeight(300));
        
    }



}

Nur da kommt die Fehlermeldung: The constructor Organ(boolean, boolean, void) is undefined

P.S. : Organ heißt auf Englisch auch Organ
 

yeahr

Mitglied
Verstehe, aber wie kann ich über "Properties" bei "weight" den Wert 300 zuweisen, so dass bei der Klasse "Heart" für "weight" der Wert Standard 300 ist ? Ich könnte ja in der Klasse "Properties" weight auf 300 setzen nur dann ist bei allen abgeleiteten Klassen von "Organ" weight auf 300, aber ich will "nur" bei "Heart" weight auf 300 setzen
 

yeahr

Mitglied
Ok also das heißt in "Heart" beim Konstruktor super(transplantable, transplanted); und dann irgendwie über properties auf weight zugreifen und weight auf 300 setzen?! Ich probier die ganze zeit aus nur ich komm nicht drauf
 
M

maki

Gast
Java:
    public Heart(boolean transplantable, boolean transplanted,
            Properties properties) {
        super(transplantable, transplanted, properties);
        
        properties.setWeight(300)
    }
 

yeahr

Mitglied
Danke, so klappt es ! Noch eine Frage nur ob ich es richtig gemacht habe und zum Verständnis. Wenn ich jetzt eine Main erstell und ein Herz erzeugen möchte ist es richtig noch einen Konstruktor in "Properties" zu implementieren ohne weight, da ja in der Klasse "Heart" schon weight auf 300 gesetzt wurde oder sollte ich es anders umsetzen?


Klasse Properties:

Java:
public Properties(String name,  String health
            , String dnaSequence){
        this.name = name;
        this.health = health;
        this.dnaSequence = dnaSequence;
    }

Die Main:

Java:
public class TestClass {
    
    public static void main(String []args){
        
        
        System.out.println("________Organ_________");
        
        Properties p3 = new Properties("Herz", "gesund","324234234");
        
        Heart h1 = new Heart(false, false, p3);
        
        System.out.println(h1.getProperties().getWeight()+" gramm");
    }

}
 

Volvagia

Top Contributor
Sollte so passen. Wenn du einen Default-Wert allgemein haben willst setzt du es im Properties-Konstruktor (sonst ist es bei Klassenzahlen immer 0) oder wenn jedes Organ einen haben soll im Organ-Konstruktor.

Wenn so viele Dinge bereits über die Propertie geregelt sind solltest du vielleicht noch einmal überdenken ob sich da Vererbung lohnt, aber weiß natürlich nicht was du vor hast.
 
M

maki

Gast
Bin der Meinung dass Properties da nicht wirklich eine gute Lösung sind.

Wenn schon "ParameterObjekte", dann lieber eigene, aussagekräftige die auch typsicher sind.
 

yeahr

Mitglied
Nochmals vielen Dank euch beiden! Ich nehme die Tipps gerne an. Wegen Properties, ich habe die Klasse so genannt weil ich noch eine Klasse abstrakte "Human" habe und dann noch "Man" und "Woman", die beide von "Human" erben. "Human" hat dann auch Attribute die sowohl "Man" als auch "Woman" haben sollen also, aber dann sind da noch die Organe, die auch diese Attribute haben. Deswegen will ich die Klasse "Properties" nicht "OrganProperties" nennen weil sie auch von "Human" genutzt wird.
 

yeahr

Mitglied
Nein kein Fehler von dir!!! Ich hatte die anderen Klassen vorher gar nicht erwähnt!! Also waren eure Antworten/Tipps gerechtfertigt!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Klassen, Vererbung und Konstruktoren Java Basics - Anfänger-Themen 10
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6
J Vererbung Hilfe zu Klassen / Vererbung Java Basics - Anfänger-Themen 12
K Vererbung equals-Methode bei Vererbung abstrakter Klassen Java Basics - Anfänger-Themen 8
J Klassen, Unterklassen, Vererbung - Compilerfehler Java Basics - Anfänger-Themen 11
T Vererbung und Zugriff auf Methoden von abgeleiteten Klassen Java Basics - Anfänger-Themen 2
L Vererbung - Wie Objekte verschiedener Klassen unterscheiden Java Basics - Anfänger-Themen 3
maddin86 Klassen und Vererbung Java Basics - Anfänger-Themen 15
berliner Klassen Vererbung und Zugriff auf innere private Variable Java Basics - Anfänger-Themen 22
D Zusammenfassung von Klassen (Vererbung? Abstrakte Klass? ...?) Java Basics - Anfänger-Themen 8
N Klassen Vererbung aus KlassenBibliothek (jar) Java Basics - Anfänger-Themen 3
C Klassen/Vererbung/Exception Java Basics - Anfänger-Themen 2
L Klassen/Methoden/Objekt/Vererbung Java Basics - Anfänger-Themen 6
frau-u Problem mit Klassen und Vererbung - benutzen von Methoden Java Basics - Anfänger-Themen 2
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
J Klassen Problem Java Basics - Anfänger-Themen 8
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Klassen objektorientiert aufteilen Java Basics - Anfänger-Themen 6
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
F Klassen und Pakete Projektübergreifend (Eclipse) Java Basics - Anfänger-Themen 6
V_Fynn03 Klassen Überweisungen tätigen und einzahlen mit 2 Klassen Java Basics - Anfänger-Themen 1
W Abarbeitungsreihenfolge Anonyme Klassen Java Basics - Anfänger-Themen 2
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
D OOP- Eine Klasse in mehrere Klassen aufteilen Java Basics - Anfänger-Themen 7
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
E Klassen implementieren Java Basics - Anfänger-Themen 94
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
C Methoden/Klassen Übergabewerte Java Basics - Anfänger-Themen 8
C Java Klassen/Methoden/Übergabeparameter Java Basics - Anfänger-Themen 4
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
L Wie teilt man ein Programm in vernünftige Klassen ein? Java Basics - Anfänger-Themen 10
T Klassen Denkfehler im Klassen "dynamisch" instanzieren? Java Basics - Anfänger-Themen 4
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
A Methode, Klassen Java Basics - Anfänger-Themen 3
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben