Was genau ist ein Standardkonstruktor

angie0408

Mitglied
Hallo,

die beste Erklärung dazu die ich gefunden habe ist diese hier:


Standardkonstruktor
Der Konstrukter in der main() Methode wurde hier verwendet:

HalloObjekt einObjekt = new HalloObjekt(); // ein HalloObjekt wird erzeugt.

Aber, hier ist die Klassendefinition von HalloObjekt:

class HalloObjekt
{
void sprich()
{
System.out.println("Hallo von einem Objekt!");
}
}


Es wird kein Konstruktor in der Klassendefinition beschrieben. Das ist in Ordnung. Eine Klasse wird sogar dann einen Konstruktor haben, wenn er nicht explizit in die Klassendefinition aufgenommen wurde. Wenn die Klassendefinition keinen Konstruktor enthält, wird vom Java Compiler automatisch ein Standardkonstruktor zur Verfügung gestellt.

Die Klassendefinition von HalloObjekt enthält keinen Konstruktor. Aber der Compiler enthält etwas ähnliches wie:

class HalloObjekt
{
HalloObjekt() // Standardkonstruktor
{
}

void sprich()
{
System.out.println("Hallo von einem Objekt!");
}
}


jedoch wird immernoch nicht erklärt wofür genau ich einen Standardkonstruktor brauche und was er genau macht.

Danke schonmal :)
 

Robat

Top Contributor
Generell kann man sagen dass ein Konstruktor dafür da ist eine Instanz einer Klasse zu erstellen.
Der so genannte Default-Konstruktor macht auch nur das.

Java:
public Foo() { }

Natürlich kannst du auch Konstruktoren erstellen die mehr machen, z.B. Parameter mit übergeben o.ä.
Java:
private int x;

public Foo(int x) {
     this.x = x;
}
 

Frithjof

Mitglied
Stell es dir so vor:
Eine Klasse ist eine Beschreibung von etwas.
Zum beispiel einem Menschen, er kann reden, Hören, Laufen...
Reden hören Laufen sind Methoden.
Eine Klasse beschreibt also erstmal die Möglichkeiten die es gibt.
In deinem Code erstellst du ein Objekte. Jedes Objekt ist ein "Abbild einer Klasse"
Zum beispiel Babara, Jan und Paul.

Wenn du das machst schreibst du sowas wie:
Mensch paul = new Mensch();
Dabei wird ein neuer Mensch erzeugt.
Während er erzeugt wird passiert ja irgendwas.
Das was passiert macht der Standardkonstruktor.
In einer Klasse wird der Standardkonstruktor mit public Klassenname (){...} angegeben.
Nehmen wir mal an jeder Mensch der erzeugt wird soll reden können.
Dann wäre eine Eigenschaft von einem Mensch kann_reden = true;
Dieser wert muss beim erstellen des Menschen gesetzt werden.
Das kann man in einem Standardconstructor machen.
Das wäre dann sowas wie:
Code:
public class Mensch {
    boolean kann_reden;

    public Mensch() {
        kann_reden = true;
    }

    public void hoeren(String wort) {
        // Was passiert wenn er Hört

    }
    public String sagen(){
        return "Hallo";
    }
}
}
Und jedesmal wenn man einen neuen Menschen als Objekt erstellt wird automatisch kann_reden auf wahr gesetzt.
Er führt also Aufgaben aus die jedesmal dann ausgeführt werden sollen wenn ein neues Objekt erstellt wird.
 

angie0408

Mitglied
Danke super erklärt :)

Und was macht der Standardkonstruktor wenn man selbst keinen erstellt?
Dann wird ja im Hintergrund trotzdem einer erstellt. Aber was macht der dann?
 

Viktim

Bekanntes Mitglied
Er führt ja was aus.
Implizit wird super() aufgerufen ;)
Nicht nur (siehe Link) :D

Und nochmal zur Erklährung:

super() ist der Konstruktor der Klasse von der mit "extends" geerbt wird. Und der kann da ja theoretisch was drin stehen haben ;)
Das spart dir dann einen Konsturkor wo nur "super()" aufgerufen wird in jeder Klasse wo Vererbung eingesetzt wird.
 
Mit einem Konstruktor kannst du Exemplare eines Objekts in einen Anfangszustand versetzen. Wenn du keinen Konstruktor implementiert hast (nur dann), wird vom Compiler ein Konstruktor in dein Programm"eingefügt". außerdem muss er denselben namen haben wie die klasse in der er steht. Mit this teilst du dem Programm mit, dass du etwas dem konstruktor hinzufügen willst. siehe unten..
Der Konstruktor wird in Java durch die () hinter einer objektvariable dargestellt. Darin kannst du variablen übergeben:

Bsp:
public class Person {
String name;
int alter;

public Person (String name, int alter){
this.name = name;
this.alter = alter;
}
}


und in der main dann:
Person person1 = new Person("deinName", 18);
Sysout(person1.name + sysout person1.alter);


ps: etwas spät, aber vielleicht hilft es dir ja doch noch weiter

Lg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
B 49-bit-zahl mit genau 6 Einsen bauen? Java Basics - Anfänger-Themen 21
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
jhCDtGVjcZGcfzug Was genau ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 5
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Was bewirkt ganz genau throw hinter einem Funktionsnamen? Java Basics - Anfänger-Themen 14
B Webhooks - was genau ist das und was kann damit JAVA Java Basics - Anfänger-Themen 5
B OCR - Rechnungserkennung, wie geht das genau? Java Basics - Anfänger-Themen 59
L Was genau macht -> Java Basics - Anfänger-Themen 18
Dawinartor Erste Schritte Was genau steckt dahinter? Java Basics - Anfänger-Themen 7
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
C Polymorphie Was genau ist Polymorphie und wann genau sollte man es verwenden? Java Basics - Anfänger-Themen 9
B Wie funktionieren diese Methoden in diesem Sortierverfahren genau? Java Basics - Anfänger-Themen 2
B Für gesamte Schleife genau X Sekunden benötigen Java Basics - Anfänger-Themen 1
J TabelView - Kann mir jemand die Sequenz genau erklären ? Java Basics - Anfänger-Themen 2
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
G Methoden Was genau macht die Methode light.setInfluencingBounds ? Java Basics - Anfänger-Themen 5
H Wer genau ist 'Er'? Java Basics - Anfänger-Themen 4
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
B Was genau ist getClass().getRessouce() Java Basics - Anfänger-Themen 1
Y Wie setze ich genau eine Stückliste (UML) in Java um? Java Basics - Anfänger-Themen 9
D Was genau ist JDBC? Java Basics - Anfänger-Themen 2
K Code vereinfachen mit Schleife, aber wie genau? Java Basics - Anfänger-Themen 3
L Jarfiles packen, wie geht's genau? Java Basics - Anfänger-Themen 12
D Wann genau nutze ich ein solches Interface? Java Basics - Anfänger-Themen 3
K Wann genau brauche ich die Anweisung gleich null? Java Basics - Anfänger-Themen 10
J keyListener - Genau 1 Aktion soll bei 1 Tastenausdruck ausgeführt werden Java Basics - Anfänger-Themen 11
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
S Erste Schritte Konstruktor - wie genau funktioniert der Code? Java Basics - Anfänger-Themen 16
J Klickposition genau bestimmen Java Basics - Anfänger-Themen 12
N aktuelle Datum Mikrosekunden genau bestimmen Java Basics - Anfänger-Themen 8
S Dezimale Konstanten sind immer positiv oder null - was heisst das den genau? Java Basics - Anfänger-Themen 2
F Was soll dieses Programm genau machen ? Java Basics - Anfänger-Themen 9
D Wie genau programmiere ich eine Assoziationsklasse? Java Basics - Anfänger-Themen 3
D Wie genau kann ich in Java Komponenten entwickeln? Java Basics - Anfänger-Themen 6
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
D Was genau bedeutet und bewirkt dieses @override? Java Basics - Anfänger-Themen 15
M Was ist genau eine Abstraktion in java Java Basics - Anfänger-Themen 3
J Was genau davon ist Anweisung, was Deklaration? Java Basics - Anfänger-Themen 2
bigbasti Warum genau braucht man Interfaces? Java Basics - Anfänger-Themen 10
A Was bedeutet folgende Programmcodezeile genau Java Basics - Anfänger-Themen 6
B Zeitmessung nicht genau genug Java Basics - Anfänger-Themen 11
L Hilfe, ich versteh nicht was mein Prof genau von mir will! Java Basics - Anfänger-Themen 9
C Wie genau geht man bei der Konzeptionierung vor? Java Basics - Anfänger-Themen 5
P Was genau bedeutet Feld Java Basics - Anfänger-Themen 3
P Was genau bedeutet "public static void main(String[] ar Java Basics - Anfänger-Themen 10
S Stack.pop() wie genau funktioniert das? Java Basics - Anfänger-Themen 3
D Mathematik in Java - genau? Java Basics - Anfänger-Themen 6
X Was genau heißt "public static void main(String[] args) Java Basics - Anfänger-Themen 4
T Standardkonstruktor, Attribute initialisieren Java Basics - Anfänger-Themen 5
N Welche Klasse besitzt einen Standardkonstruktor ? Java Basics - Anfänger-Themen 30

Ähnliche Java Themen

Neue Themen


Oben