Java-Standardkonstruktor
Was genau ist ein Standard-Konstruktor — können Sie mir sagen, welche der folgenden ist ein Standard-Konstruktor und was unterscheidet es von jedem anderen Konstruktor?
public Module() {
this.name = "";
this.credits = 0;
this.hours = 0;
}
public Module(String name, int credits, int hours) {
this.name = name;
this.credits = credits;
this.hours = hours;
}
InformationsquelleAutor der Frage antanis | 2010-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keiner von Ihnen. Wenn Sie es definieren, es ist nicht der Standard.
Den default-Konstruktor ist der no-argument-Konstruktor wird automatisch erzeugt, es sei denn, Sie definieren einen anderen Konstruktor. Er initialisiert alle uninitialised Felder auf Ihre Standardwerte zurück. Für dein Beispiel würde es wie folgt Aussehen, vorausgesetzt, die Typen sind
String
int
undint
:Dies ist genau das gleiche wie
Und genau das gleiche wie mit keine Konstruktoren überhaupt. Wenn Sie jedoch definieren, mindestens ein Konstruktor der Standard-Konstruktor nicht erzeugt.
Referenz: Java Language Specification
Klärung
Technisch ist es nicht der Konstruktor (Standard oder andere), die default-initialisiert die Felder. Jedoch ich lasse dieses in der Antwort als
InformationsquelleAutor der Antwort OrangeDog
Einen default-Konstruktor wird erzeugt, wenn Sie nicht definieren von Konstruktoren in Ihren Klassen. Es ist einfach ein no-argument-Konstruktor, der nichts tut. Edit: Außer Aufruf super()
InformationsquelleAutor der Antwort Jim
Einen default-Konstruktor wird automatisch vom compiler generiert, wenn Sie nicht explizit definieren, mindestens ein Konstruktor in Ihrer Klasse. Sie definiert habe zwei, so dass Ihre Klasse keinen default-Konstruktor.
Pro Die Java Language Specification, Third Edition:
InformationsquelleAutor der Antwort kem
Hallo. Wie pro meine Kenntnisse lassen mich klar das Konzept der Standard-Konstruktor:
Lese ich diese information aus der Java Tutorials.
InformationsquelleAutor der Antwort Koushik85
Java stellt einen Standard-Konstruktor, der keine Argumente entgegennimmt und durchführt, keine besonderen Aktionen oder Initialisierungen, wenn keine explizite Konstruktoren werden zur Verfügung gestellt.
Nur Maßnahmen, die den impliziten Standard-Konstruktor ist der Aufruf des superclass-Konstruktors mittels super () - Aufruf. Konstruktor-Argumente bieten Ihnen die Möglichkeit zur Bereitstellung der Parameter für die Initialisierung eines Objekts.
Unten ist ein Beispiel der Würfel-Klasse mit 2 Konstruktoren. (ein Standard-und ein parametrisierter Konstruktor).
InformationsquelleAutor der Antwort sunil
Allgemeine Terminologie ist, dass, wenn Sie nicht bieten keine Konstruktor in das Objekt ein no-argument-Konstruktor wird automatisch platziert, die sogenannte default-Konstruktor.
Wenn Sie tun definieren Sie einen Konstruktor gleiche wie die eine, die platziert werden würde, wenn Sie nicht bieten keine es ist in der Regel bezeichnet als Konstruktor ohne Argumente.Nur eine Konvention, obwohl, wie einige Programmierer lieber nennen diese explizit definierten Konstruktor ohne Argumente als Standard-Konstruktor. Aber wenn wir gehen durch die Benennung, wenn wir explizit definieren, als es nicht machen Sie es Standard.
Als pro die docs
Wenn eine Klasse enthält keinen Konstruktor-Deklarationen, dann wird ein Standard-Konstruktor ohne formale Parameter und ohne throws-Klausel wird implizit deklariert.
Beispiel
wird automatisch geändert werden, indem Sie die default-Konstruktor) wie folgt
und wenn Sie es schaffen, das Objekt
dieser Standardkonstruktor aufgerufen wird.
InformationsquelleAutor der Antwort Aniket Thakur
Wenn eine Klasse keinen Konstruktor, sofern vom Programmierer, dann java-compiler ein default-Konstruktor mit Parameter aufgerufen-super-Klasse-Konstruktor intern mit super () - Aufruf. Das heißt Standardkonstruktor.
In Ihrem Fall, es gibt keinen Standard-Konstruktor, wie Sie sind, indem Sie Sie programmgesteuert.
Wenn es keine Konstruktoren Hinzugefügt werden, indem Sie dann vom compiler generierte default-Konstruktor wird wie folgt Aussehen.
Hinweis: Seite default-Konstruktor, es wird super () - Aufruf auch zu nennen super-Klasse-Konstruktor.
Zweck, das hinzufügen von Standard-Konstruktor:
Konstruktor die Pflicht zum initialisieren von Instanzvariablen, wenn es keine Instanz-Variablen, die Sie wählen könnten, zu entfernen Konstruktor von der Klasse. Aber, wenn Sie sind die Erben einer Klasse ist deine Klasse Verantwortung zu rufen-super-Klasse-Konstruktor, um sicherzustellen, dass die super-Klasse initialisiert alle seine Instanzvariablen korrekt.
Das ist, warum, wenn es keine Konstruktoren, java-compiler ein default-Konstruktor, und ruft super-Klasse-Konstruktor.
InformationsquelleAutor der Antwort user1923551
default-Konstruktor bezieht sich auf einen Konstruktor, der automatisch vom compiler generiert in der Abwesenheit von einem Programmierer definierte Konstruktoren.
Wenn es keinen Konstruktor zur Verfügung gestellt vom Programmierer, der compiler implizit deklariert, einen Standardkonstruktor, welche Anrufe
super()
hat keine throws-Klausel werden keine formalen Parameter.E. g.
InformationsquelleAutor der Antwort Yergalem
Einen default-Konstruktor keine Argumente:
InformationsquelleAutor der Antwort
Wenn wir nicht explizit definieren Sie einen Konstruktor für eine Klasse, dann java erstellt einen default-Konstruktor für die Klasse. Es ist im wesentlichen ein nicht-parametrisierten Konstruktor, d.h. es nimmt nicht alle Argumente.
Den default-Konstruktor, der job ist der Aufruf der super-Klasse-Konstruktor initialisiert alle Instanzvariablen. Wenn der super-Konstruktor der Klasse nicht vorhanden, wird es automatisch initialisiert die Instanzvariablen auf null. So, das dient dem Zweck der Verwendung Konstruktor, die Initialisierung des internen Zustand eines Objekts, so dass der code zum erstellen einer Instanz über eine vollständig initialisiert, nutzbare Objekt.
Einmal definieren wir unsere eigenen Konstruktor für die Klasse der default-Konstruktor nicht mehr verwendet wird. Also, keiner von Ihnen ist eigentlich ein Standard-Konstruktor.
InformationsquelleAutor der Antwort uttsav
Ich hoffe, du hast deine Antwort in Bezug auf die default-Konstruktor.
Aber ich gebe Anweisungen unten, um die richtige Kommentare gegeben.
Entnehmen Sie bitte folgenden link für mehr details.
https://www.javatpoint.com/constructor
InformationsquelleAutor der Antwort Chirag Nimavat