Methoden Konstruktor auf Funktion prüfen

jaybe

Mitglied
Hi,
Bin noch ein wenig verwirrt in Java und bräuchte für eine Aufgabe eure Hilfe.
Es gibt zwei Klassen "Balkenelement" und "Durchlaufträger".
Ich sollte in der Klasse Balkenelement einen neuen Konstruktor schreiben:
Java:
public Balkenelement(double laenge){
      this.l=laenge;
      this.q=0.0;
    }
Es wird nur die Länge übergeben und q auf 0 gesetzt.
Jetzt soll in der anderen Klasse "Durchlaufträger" dieser neue Konstruktor auf Funktion überprüft werden.

Java:
public class Durchlauftraeger {

    public static void main(String[] args) {
        // Variablen deklarieren
        int anzahlElemente = 0;
        Balkenelement[] traeger;
        double laengeTraeger = 0.0;
        double lastTraeger = 0.0;
        
        //Einlesen der Elementanzahl
        System.out.println("Geben sie die Anzahl der Balkenelemente an:");
        anzahlElemente = Keyboard.readInt();
        
        // Array mit neuen Balkenelementen füllen
        traeger = new Balkenelement[anzahlElemente];
        for (int i = 0; i < anzahlElemente; i++){
            traeger[i] = new Balkenelement();
        }
        

        //Einlesen der Werte der einzelenen Traegerelemente
        for (int i = 0; i < anzahlElemente; i++){
            System.out.println("Trägerfeld " + i);
            traeger[i].einlesen();
            laengeTraeger += traeger[i].getLaenge();
            lastTraeger += traeger[i].getLaenge() * traeger[i].getLast();
        }
        
        //Gesamtlänge und -last ausgeben
        System.out.println("Die Gesamtlänge des Trägers ist: " + laengeTraeger);
        System.out.println("Die Gesamtlast auf dem Träger ist: " + lastTraeger);
     }
}

Mein Problem ist glaub ich, dass ich noch nicht so ganz mit den Konstruktoren durchgestigen bin???:L
Wie überprüfe ich Konstruktoren auf ihre Funktion. Habe noch 2 andere Aufgaben wo ich das so machen muss und hänge da im Moment fest.

Wenn ich das richtig verstehe wird der Konstruktor doch nur hier aufgerufen:
Java:
...
 // Array mit neuen Balkenelementen füllen
        traeger = new Balkenelement[anzahlElemente];
        for (int i = 0; i < anzahlElemente; i++){
            traeger[i] = new Balkenelement();
        }
...
Müsste ich nicht einfach in die Klammern eine Zahl reinschreiben für die Länge ? Also:
Java:
traeger[i] = new Balkenelement(2);

Vll. könnte mir das nochmal jemand erklären.

Freundlicher Gruß
Johannes
 

Runtime

Top Contributor
Alle deklarierten Parameter des Konstruktors müssen auch übergeben werden, sprich, du musst die Länge angeben, wie du es oben getan hast. Btw: nimm ausschlaggebendere Namen für deine Variablen, was ist q?
 
Zuletzt bearbeitet:

swp

Mitglied
Wenn ich das richtig verstehe wird der Konstruktor doch nur hier aufgerufen:

Richtig.

Müsste ich nicht einfach in die Klammern eine Zahl reinschreiben für die Länge? Also:

Ja, das ist auch richtig. Balkenelement() ist in diesem Falle der Standardkonstruktor. Da es den in deiner Balkenelement-Klasse nicht gibt, wird hier der Standardkonstruktor der Oberklasse, in deinem Fall "Object", aufgerufen. Machst du nur Balkenelement(), kommt die JVM gar nicht in deinen selbst geschriebenen Konstruktor rein.
Möchtest du dich davor absichern, musst du den Standardkonstruktor als private oder protected überladen:

Java:
protected Balkenelement() {
}

Dann wird ein Aufruf von new Balkenelement() einen Compilerfehler erzeugen.

Direkt testen kannst du einen Konstruktor so nicht. Wenn du aber eine IDE nutzt wie Eclipse, dann setze doch einen Breakpoint auf den ersten Befehl im Konstruktor und gehe im Einzelschrittverfahren durch. Oder für deinen Fall oben: Definiere einfach noch Getter für l und q:

Java:
public double getL() {
  return l;
}

public double getQ() {
  return q;
}

Und dann machst du folgendes:
Java:
traeger[i] = new Balkenelement(2);
System.out.println(String.format("l = %f und q = %f", traeger[i].getL(), traeger[i].getQ()));
 

jaybe

Mitglied
Danke für deine schnelle Antowrt. q ist die Streckenlast. Was bedeutet das jetzt praktisch?
Weiß jetzt irgendwie nicht genau weiter.:bahnhof: Könntest du das vll. ein bisschen genauer erklären.
 

jaybe

Mitglied
Sry habe ein bisschen zu früh gepostet ohne den Beitrag von "swp" gelesen zu haben.
Kann den jemand löschen ?
Die Getter Methoden waren schon in der Klasse "Balkenelement" vorhanden, sodass ich nur noch die Ausgabe einfügen musste! Vielen Dank !:toll:
 
Zuletzt bearbeitet:
B

bygones

Gast
sorry, swp aber du erzählst hier zum teil falsches. (EDIT: ok hats selbst gelöscht....)

Der Konstruktor ist nun eine Spezialmethode, die ausgeführt wird, wenn alle direkten Variableninitialisierungen abgeschlossen sind (also sowas wie "private int a = 3;").
Der Konstruktor wird ausgeführt, wenn man ein Objekt instanziiert ala [c]Quadrat q = new Quadrat();[/c]

Ja, das ist auch richtig. Balkenelement() ist in diesem Falle der Standardkonstruktor. Da es den in deiner Balkenelement-Klasse nicht gibt, wird hier der Standardkonstruktor der Oberklasse, in deinem Fall "Object", aufgerufen. Machst du nur Balkenelement(), kommt die JVM gar nicht in deinen selbst geschriebenen Konstruktor rein
Wenn man in einer Klasse einen vom Standard abweichenden Konstruktor hat, so gibt es den Standardkonstruktor nicht mehr, da wird auch nicht in irgendwelchen Oberklassen gesucht.

Das Erklären hier von private / protected ist meiner Ansicht nach mehr verwirrend als hilfreich. Auch private/protected oder default package Konstruktoren gibt es und können genutzt werden. Dein Text klingt als ob diese immer zu fehlern führen.

Weiterhin kannst du schon den Konstruktor testen. Nach dem erstellen einer Instanz kannst du diese überprüfen und somit den Konstruktor testen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
P Parameter aus Konstruktor an Methode/Funktion übergeben Java Basics - Anfänger-Themen 10
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
T Schlüsselworte Schlüsselwort this im Konstruktor Java Basics - Anfänger-Themen 3
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
J Konstruktor Java Basics - Anfänger-Themen 18
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Konstruktor und update Java Basics - Anfänger-Themen 4
K Kopier-Konstruktor Java Basics - Anfänger-Themen 6
S Default Konstruktor Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
HorstSchröder Konstruktor mit Initialwert Java Basics - Anfänger-Themen 1
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Konstruktor passt nicht zum Rest Java Basics - Anfänger-Themen 11
C Unbekannter "Konstruktor"?? Java Basics - Anfänger-Themen 10
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
E Konstruktor mit Methode Java Basics - Anfänger-Themen 7
E ArithmeticException im Konstruktor Java Basics - Anfänger-Themen 4
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
W Typecastin im Konstruktor? Java Basics - Anfänger-Themen 2
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
D Compiler-Fehler Konstruktor von Superklasse übernehmen Java Basics - Anfänger-Themen 1
P Counter im Konstruktor Java Basics - Anfänger-Themen 11
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Datentypen Warum mit Konstruktor Objektvariablen initalisieren? Java Basics - Anfänger-Themen 19
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
P Konstruktor. Java Basics - Anfänger-Themen 4
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
D Objekt oder Konstruktor Java Basics - Anfänger-Themen 2
F Java default Konstruktor Java Basics - Anfänger-Themen 1
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
T Konstruktor mit Referenzdatentypen Java Basics - Anfänger-Themen 5
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
R ArrayList im Konstruktor. Java Basics - Anfänger-Themen 4
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
C Generic im Konstruktor Java Basics - Anfänger-Themen 1
F Privater Konstruktor und statische Methoden Java Basics - Anfänger-Themen 4
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
G Verwendung von Konstruktor Java Basics - Anfänger-Themen 8
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
B Konstruktor Problem Java Basics - Anfänger-Themen 8
Joew0815 konstruktor und damit erstellte objekte Java Basics - Anfänger-Themen 1
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
H Fehler im Konstruktor abfangen Java Basics - Anfänger-Themen 10
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
O Konstruktor und Default Konstruktor Java Basics - Anfänger-Themen 7
S Kapselung Objekt bei Übergabe an Konstruktor nicht initalisiert Java Basics - Anfänger-Themen 3
I Vererbung Frage zum Konstruktor Java Basics - Anfänger-Themen 5
Y Konstruktor - Setter/Getter Java Basics - Anfänger-Themen 3
P Konstruktor Java Basics - Anfänger-Themen 4
E Initialisierung von Attributen und Konstruktor Java Basics - Anfänger-Themen 0
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
M Objekt Array an konstruktor übergeben und Initialisieren Java Basics - Anfänger-Themen 1
llabusch Vererbung Super Konstruktor Java Basics - Anfänger-Themen 5
P Erste Schritte WindowBuilder erstellt Konstruktor wie zugreifen Java Basics - Anfänger-Themen 5
M Parameter von Konstruktor, der Superklassen-Konstruktor aufruft Java Basics - Anfänger-Themen 2
V Was soll alles in den Konstruktor? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben