Java: Wie kann ein Konstruktor einen Wert zurückgeben?
$ cat Const.java
public class Const {
String Const(String hello) {
return hello;
}
public static void main(String[] args) {
System.out.println(new Const("Hello!"));
}
}
$ javac Const.java
Const.java:7: cannot find symbol
symbol : constructor Const(java.lang.String)
location: class Const
System.out.println(new Const("Hello!"));
^
1 error
InformationsquelleAutor der Frage hhh | 2010-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie definiert haben, ist nicht wirklich ein Konstruktor, sondern eine Methode namens
Const
. Wenn Sie änderungen an Ihrem code so etwas wie dieses, es würde funktionieren:Wenn kein spezieller Konstruktor explizit definiert, erstellt der compiler automatisch einen no-argument-Konstruktor.
InformationsquelleAutor der Antwort Ash
Konstruktoren können nicht einen Wert zurück; Sie kehren das Objekt konstruiert, so zu sprechen.
Erhalten Sie eine Fehlermeldung, da der compiler sucht einen Konstruktor nimmt einen string als argument. Da hast du nicht deklarieren Sie einen Konstruktor, der einzige Konstruktor zur Verfügung, ist die Standard-Konstruktor, der keine argument.
Warum sage ich Ihnen nicht erklären, einen Konstruktor? Denn sobald Sie deklarieren einen Wert zurück/geben Sie für die Methode ist kein Konstruktor mehr, sondern einer regulären Methode.
Aus der Java-Dokumentation:
Wenn Sie erläutern, was Sie zu erreichen versuchen, jemand könnte in der Lage sein, Ihnen zu sagen, wie Sie bekommen können, um diesem Ziel.
InformationsquelleAutor der Antwort scherand
Eigentlich Konstruktor in einer java-Klasse kann nicht einen Wert zurückgeben, muss dieser in der folgenden form
überprüfen Sie diese links
http://leepoint.net/notes-java/oop/constructors/constructor.html
http://java.sun.com/docs/books/tutorial/java/javaOO/constructors.html
InformationsquelleAutor der Antwort Mohammad Kotb
Kann ein Konstruktor keinen Wert zurück, da ein Konstruktor implizit gibt die Referenz-ID des Objekts, und da ein Konstruktor ist auch eine Methode und eine Methode kann nicht mehr zurück, als one-Werte aus. So sagen wir ausdrücklich-Konstruktor hat keinen Rückgabewert.
InformationsquelleAutor der Antwort Ajendra Chaurasia
Viele tolle Antworten bereits. Ich möchte nur hinzufügen, dass, wenn Sie wollen, um einige return-code getrennt von dem Objekt selbst als Ergebnis des Aufrufs eines Konstruktors, Sie können wickeln Sie den Konstruktor in einen
factory method
die bei der Erstellung, könnten zum Beispiel einige Daten der Validierung innerhalb der konstruierten Objekt und zurück einboolean
je nach Ergebnis.InformationsquelleAutor der Antwort amphibient
Konstruktor kann einen Wert zurückgeben. Das ist endgültig. Es ist der gleiche Sinn - es kann kein zurück geben und das ist, warum Sie immer die compile-Fehler. Man kann sagen, dass der return-Wert ist immer implizit das Objekt erstellt, indem der Konstruktor.
InformationsquelleAutor der Antwort Bozhidar Batsov
Kann ein Konstruktor keinen Rückgabewert wie eine "normale" Funktion. Es wird aufgerufen, wenn ein istance der betreffenden Klasse erstellt wird.
Es wird verwendet, um die Initialisierung der Instanz.
InformationsquelleAutor der Antwort Venemo
Ich denke, der beste Weg, den Effekt zu produzieren, die Sie wollen, wären die folgenden:
Diese ersetzt die
public String Const()
Methode, die Sie zuvor verwendet, und durch überschreiben derpublic String toString()
Methode derObject
(Die alle Java-Klassen Erben) der String-Wert des Objekts korrekt gedruckt, wenn Sie möchten, drucken Sie das Objekt, also der main-Methode bleibt unverändert.InformationsquelleAutor der Antwort Edd
InformationsquelleAutor der Antwort Arthur
Pass zurück, ein Wert, der von einem Konstruktor - nur übergeben Sie ein array als parameter.
Um das Prinzip zu verdeutlichen:
InformationsquelleAutor der Antwort Adrian Powell
}
InformationsquelleAutor der Antwort Patrick