Was bedeutet "diese ()" Methode?
Lief ich in dieser code-block, und es gibt diese eine Zeile, die ich nicht beenden zu verstehen, die Bedeutung oder das, was es tut.
public Digraph(In in) {
this(in.readInt());
int E = in.readInt();
for (int i = 0; i < E; i++) {
int v = in.readInt();
int w = in.readInt();
addEdge(v, w);
}
}
Verstehe ich, was this.method()
oder this.variable
sind, aber was ist this()
?
InformationsquelleAutor der Frage Sugihara | 2013-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Konstruktor ist überladen:
Können Sie sagen, dieser code ist ein Konstruktor und nicht eine Methode, die durch das fehlen einer Rückkehr geben.
Dies ist ziemlich ähnlich wie der Aufruf von
super()
in der ersten Zeile des Konstruktors zur Initialisierung der erweiterten Klasse. Rufen Siethis()
(oder andere überlastungthis()
) in die erste Zeile deines Konstruktors und damit die Vermeidung von Konstruktor-code Duplikationen.Können Sie auch einen Blick auf diesen Beitrag: Konstruktor überladen in Java - best practice
InformationsquelleAutor der Antwort Avi
Verwendung von this() als eine Funktion wie, dass, im wesentlichen ruft der Konstruktor der Klasse. Dies ermöglicht Ihnen, alle generischen Initialisierungen in einem Konstruktor und Spezialisierungen in anderen. So auch in diesem Stück code, zum Beispiel, wird der Anruf zu
this(in.readInt())
ruft die Digraph-Konstruktor, der einen int-argument.InformationsquelleAutor der Antwort Sinkingpoint
Dieser code-snippet ist ein Konstruktor.
Dieser Aufruf
this
ruft einen anderen Konstruktor der gleichen KlasseIm obigen Beispiel haben wir einen Konstruktor, eine
int
und eine, die dauert einString
. Der Konstruktor, eineString
wandelt dieString
zu einemint
und dann die Delegierten derint
Konstruktor.Beachten Sie, dass ein Aufruf zu einem anderen Konstruktor oder eine superclass-Konstruktor (
super()
) muss die erste Zeile im Konstruktor.Vielleicht werfen Sie einen Blick auf diese für eine genauere Beschreibung der Konstruktor überladen.
InformationsquelleAutor der Antwort Boris the Spider
Es ist fast dasselbe
InformationsquelleAutor der Antwort Antimony
Aufrufen
this
im wesentlichen ruft der Konstruktor der Klasse.Zum Beispiel, wenn Sie erweitern sich etwas, als zusammen mit
add(JComponent)
Sie tun könnten:this.add(JComponent).
InformationsquelleAutor der Antwort user2228462
Einen anderen Konstruktor der Klasse Digraph mit einem int-parameter.
InformationsquelleAutor der Antwort Nándor Krácser
Konstruktor Überladen:
ex:
InformationsquelleAutor der Antwort LMK
this();
ist der Konstruktor, der verwendet wird, um ein Konstruktor in einer Klasse,zum Beispiel:-
Hinweis:
ich habe nicht mit
this()
Konstruktor Standard-Konstruktor, denn es führt zu deadlock-Zustand.Hoffe das hilft dir:)
InformationsquelleAutor der Antwort user27