Vererbung

Status
Nicht offen für weitere Antworten.

Juliana

Mitglied
Hallo!

Ich habe folgendes Problem:
Meine Superklasse Haus berechnet meine Hausgrundfläche = grundfläche
Die Subklasse Blockhaus soll auf grundfläche zugreifen, um dachfläche zu berechnen.
Alles funktioniert prima, nur bekomme ich als dachfläche Wert immer 0.0 raus. Schmeiße ich den ganzen dachfläche Kram in die Superklasse, dann bekomme ich den korrekten Wert. Irgendwie muss das also mit meinem Zugriff auf die Superklasse zu tun haben.
Baue ich jetzt aber super in den Konstruktor ein, muss ich ja Übergabeparameter eintragen, dann funktioniert es auch. Ich muss aber mit BlueJ arbeiten, und bei der Erstellung der Objekte muss ich dann diese Übergabeparameter gesondert eingeben. Was ich aber nicht will.
Ich bitte um Hilfe- raufe mir schon die Haare.
Herzliche Grüße und Danke im Voraus.
Code:
public class Haus
{
    private String namehausherr; 
    private String straße;
    private int hausnummer;
    private int plz;
    private String ort;
    private String adresse;
    private double breite;
    private double tiefe;
    private double höhe;
    public double grundfläche;
    private double flächeaußenwand;
    private double gesamtkosten;
    
    

    /**
     * Constructor for objects of class Haus
     */
    public Haus()
    {
        breite = 0;
        tiefe = 0;
        höhe = 0;
        grundfläche = 0;
        flächeaußenwand = 0;
        gesamtkosten = 0;
     
    }


    public void setzeMaße ( double breite, double tiefe, double höhe)
    {
        this.breite = breite;
        this.tiefe = tiefe;
        this.höhe = höhe;
    }
    
    
    
    public void berechnegrundfläche()
     {
       grundfläche = (breite*tiefe);
       this.grundfläche = grundfläche;
     
     }  
   public void berechneflächeaußenwand ()
     {
        flächeaußenwand = (breite*höhe*4);
        this.flächeaußenwand = flächeaußenwand;
     }
public void ausgebenMaße ()
    {   
        System.out.println("Breite:         m " + breite );
        System.out.println("Tiefe:          m " + tiefe  );
        System.out.println("Höhe:           m " + höhe   );
        System.out.println("Grundfläche:    m² " + grundfläche);
        System.out.println("Hausaußenfläche:m² " + flächeaußenwand);
    }
}





public class Blockhaus extends Haus
{
   
    private double kostenerrichtung;
    private double kostenflachdach;
    private double dachfläche;
 
    
    public Blockhaus ()
{     
        dachfläche = 0;
        kostenerrichtung = 0;
        kostenflachdach = 0;

}
 
    public void berechneDach ()
    {   
        dachfläche = (grundfläche*1.2);
        this.dachfläche = dachfläche;
        System.out.println("Dachfläche : m²" + dachfläche);
    }
    
}
 

Icewind

Bekanntes Mitglied
hm hast du auch die maße gesetzt, nachdem du das Blockhaus erzeugt hast??

und die zuweisungen a la: this.grundfläche = grundfläche; ist ziemlich unnötig....
 

Juliana

Mitglied
nein, ich habe die maße nicht neu gesetzt, das heißt, ich schreibe meine methode setzeMaße noch einmal ins Blockhaus?
Danke für den "this" Hinweis- ich bringe mir erst seit gestern Java bei, nach einer FM hat das dann mit this funktioniert- deswegen habe ich es gelassen.
 

Icewind

Bekanntes Mitglied
hm naja du muss schon ein blockhaus anlegen und dann die maße des neuen blockhauses setzten sonst wird das nix...
 

SebiB90

Top Contributor
ne keine neue methode schreiben
sondern er will wissen ob du das gemacht hast
Code:
Blockhause block = new Blockhause();
block.setMaße(100.5,23.7,3445675.3);
//..
 

Juliana

Mitglied
nein, ich habe kein neues Blockhaus gemacht. Gebe ich das dann in die Subclasse ein? und wenn ja, als eigene methode?
Und ich habe das gerade mit set.blockhaus versucht- da muss ich dann wieder die parameter breite, tiefe etc übergeben. also in bluej eintippen. wenn ich nur den parameter grundfläche übergebe, dann funktioniert das ja insofern nicht- weil das von class Haus berechnet wird.
danke schon einmal für eure antworten- auch wenn ich mich ein wenig "tölpisch" anstellen mag
 

Juliana

Mitglied
Code:
/**
 * Write a description of class Haus here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Haus
{
    private String namehausherr; // Instanzvariablen
    private String straße;
    private int hausnummer;
    private int plz;
    private String ort;
    private String adresse;
    private double breite;
    private double tiefe;
    private double höhe;
    public double grundfläche;
    private double flächeaußenwand;
    private double gesamtkosten;
    
    

    /**
     * Constructor for objects of class Haus
     */
    public Haus()
    {
        namehausherr = "unbekannt"; // Initialisieren der Instanzvariablen
        straße = "unbekannt";
        hausnummer = 0;
        plz = 0;
        ort = "unbekannt";
        adresse = "unbekannt";
        breite = 0;
        tiefe = 0;
        höhe = 0;
        grundfläche = 0;
        flächeaußenwand = 0;
        gesamtkosten = 0;
     
    }

    public void setzeAdresse (String namehausherr, String straße, int hausnummer, int plz, String ort)
    { 
       namehausherr = namehausherr;
       straße = straße;
       hausnummer = hausnummer;
       plz = plz;
       ort = ort;
       
    }
    
    public void ausgebenAdresse()
    {
        System.out.println("Name:   "  + namehausherr);
        System.out.println("Straße: " + straße);
        System.out.println("Nr:     " + hausnummer);
        System.out.println("PLZ:    " + plz);
        System.out.println("Ort:    " + ort);
        
    }

    public void setzeMaße ( double breite, double tiefe, double höhe)
    {
        breite = breite;
        tiefe = tiefe;
        höhe = höhe;
    }
    
    
    
    public void berechnegrundfläche()
     {
       grundfläche = (breite*tiefe);
      
     
     }  
   public void berechneflächeaußenwand ()
     {
        flächeaußenwand = (breite*höhe*4);
        
     }
public void ausgebenMaße ()
    {   
        System.out.println("Breite:         m " + breite );
        System.out.println("Tiefe:          m " + tiefe  );
        System.out.println("Höhe:           m " + höhe   );
        System.out.println("Grundfläche:    m² " + grundfläche);
        System.out.println("Hausaußenfläche:m² " + flächeaußenwand);
    }
}



// und jetzt die subklasse



/**
 * Write a description of class Blockhaus here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Blockhaus extends Haus
{
   
    private double kostenerrichtung;
    private double kostenflachdach;
    private double dachfläche;
 
    
    public Blockhaus ()
{     
        dachfläche = 0;
        kostenerrichtung = 0;
        kostenflachdach = 0;

}
 
    public void berechneDach ()
    {   
        dachfläche = (grundfläche*1.2);   
        System.out.println("Dachfläche : m²" + dachfläche);
    }
     
   
}


Ich glaube ich muss da einfach einen Fehler beim Zugriff machen.
Herzlichen Dank
 

Icewind

Bekanntes Mitglied
hm ich glaub du hast das noch nicht ganz mit klassen und objekten überissen so wie das rüberkommt...

also eine klasse ist zb dein haus und das haus hat verschiedene attribute wie die grundfläche oder zb die höhe etc...
und das is nur die "theorie", du musst jetzt ein neues haus erzeugen indem du eines instanzierst:
und jedes haus hat seine eigenen attribute, dh wenn du die attribute für ein haus setzt ist es für das andere nicht gesetzte...

Code:
Haus test = new Haus();

so das wär jetzt ein neues haus und dieses haus hat noch keine maße...
deswegen setzten wir jetzt maße:

Code:
haus.setzeMaße(23.2,34.3,65.3);

so jetzt hat das haus auch maße und jetzt kannst du mit der methode berechnegrundfläche() die grundfläche berechnen...


ja und wenn du jetzt von haus erbst und ein Blockhaus hast musst du natürlich wieder ein neues blockhaus anlegen mit:

Code:
Blockhaus block = new Blockhaus();

und für dieses musst du wieder die maße setzten und dannach soltest du eigentlich alles berechnen können....
 

Juliana

Mitglied
Antwort 1:
Das ist der gesamte Code, den ich habe- ich habe nur 2 Klassen gemacht- direkt in BlueJ eine neues Projekt und eine neue Klasse erzeugt.
 

SebiB90

Top Contributor
du musst erst ne instanze vom object erzeugen in der main methode
mich wundert es das du den wert 0.0 bekommst. ich frag mich vorher
 

Icewind

Bekanntes Mitglied
omg... tja da bin ich doch etwas sprachlos....
(kenne leider BlueJ nicht also kann ich dir da auch nicht weiterhelfen)
 

Juliana

Mitglied
Antwort 2:
Ich erzeuge ein neues Objekt in BlueJ direkt- Mausklick, da muss ich keinen extra Code dafür schreiben; soweit ich das jetzt verstanden habe.
Ich gehe auf newHaus() und kann dann mit der rechten Maustaste die verschiedenen Methoden auswählen.[/img]
 

Juliana

Mitglied
Aber muss ich jetzt noch meine grundfläche an blockhaus übergeben oder findet das meine subklasse automatisch?
 

SebiB90

Top Contributor
omg...
so wird dat nix
dann kann man das nur mit jblue verwenden das programm und es läuft immer anders

erstell noch ne class und schreib diese methode da rein
Code:
public static void main(String[] argv) {
}
und in dieser methode schreibst du dann den code rein der die instance erstellt etc.
 

Juliana

Mitglied
okay, danke, werde mich mal dahinter klemmen- ich gebe Euch dann bescheid. Meine kleine Tochter schreit gerade nach mir. Muss mich ein bisschen zu ihr legen.

Herzlichen Dank an Euch- lasse Euch meine Lösung wissen.

Liebe Grüße Juliana
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
L Java- Vererbung Java Basics - Anfänger-Themen 4
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 12
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 1
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
M Vererbung Java Basics - Anfänger-Themen 6
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Java Basics - Anfänger-Themen 7
D Vererbung Java Basics - Anfänger-Themen 3
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
H Datenkapselung, Vererbung und UML Java Basics - Anfänger-Themen 16
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
G Vererbung Klassenattribute Java Basics - Anfänger-Themen 9
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
N Thema Vererbung Java Basics - Anfänger-Themen 31
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
G Java Vererbung Java Basics - Anfänger-Themen 8
Y Vererbung Konto - Anfangsprobleme Java Basics - Anfänger-Themen 7
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
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
Kirby.exe Vererbung im Detail erklärt? Java Basics - Anfänger-Themen 9
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung im Computerspiel Java Basics - Anfänger-Themen 7
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
I Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
V Vererbung Java Basics - Anfänger-Themen 2
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
J Vererbung Java Basics - Anfänger-Themen 3
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
O Vererbung änderung des Konstruktors Java Basics - Anfänger-Themen 8
L Vererbung Java Basics - Anfänger-Themen 5
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
A Objekterstellung bei der Vererbung Java Basics - Anfänger-Themen 7
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
A Klassen Vererbung privater Methoden und Member Java Basics - Anfänger-Themen 12
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Generizität und Vererbung Java Basics - Anfänger-Themen 4
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
K Vererbung Octagon von Circle Java Basics - Anfänger-Themen 0
B Hilfe bei Vererbung Java Basics - Anfänger-Themen 2
D Vererbung Frage zum Klassenaufbau mit Vererbung Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 1
F Vererbung in zwei Richtungen? Java Basics - Anfänger-Themen 14
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
O Vererbung Java Basics - Anfänger-Themen 5
MiMa Vererbung Theorie OK, Praxis ?? Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 10
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
J Kleinere Frage zur Vererbung/Objekterzeugung Java Basics - Anfänger-Themen 2
G Vererbung Java Basics - Anfänger-Themen 12
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
J Vererbung Vererbung von Methoden Java Basics - Anfänger-Themen 6
B Vererbung Java Basics - Anfänger-Themen 12
K Vererbung (super) Java Basics - Anfänger-Themen 2
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
C Vererbung Java Basics - Anfänger-Themen 4
L Vererbung Java Basics - Anfänger-Themen 3
J Klassenorganisation | Vererbung Java Basics - Anfänger-Themen 1
B Vererbung Vererbung Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
A Benötige Hilfe bei Vererbung Java Basics - Anfänger-Themen 1
M Anfängerprobleme mit Vererbung Java Basics - Anfänger-Themen 27
J Vererbung Java Basics - Anfänger-Themen 9
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben