Ich muss eine Methode mit einem Standardkonstruktor erstellen, der name
auf eine leere Zeichenfolge setzt und beide credits
und contactHours
auf Null setzt. Wie es geht? Danke, Pieter.Erstellen Sie einen Standardkonstruktor in Java
Antwort
Methoden haben keine Konstruktoren ... Klassen tun. Zum Beispiel:
public class Dummy
{
private int credits;
private int contactHours;
private String name;
public Dummy()
{
name = "";
credits = 0;
contactHours = 0;
}
// More stuff here, e.g. property accessors
}
Sie nicht wirklich haben credits
oder contactHours
zu setzen, wie die int
Typ automatisch auf 0 für Felder sowieso.
Du bist wahrscheinlich mindestens einen Konstruktor wollen, die Anfangswerte nimmt - in diesem Fall Ihre parameterlos man, dass delegieren kann:
public class Dummy
{
private String name;
private int credits;
private int contactHours;
public Dummy()
{
this("", 0, 0);
}
public Dummy(String name, int credits, int contactHours)
{
this.name = name;
this.credits = credits;
this.contactHours = contactHours;
}
// More stuff here, e.g. property accessors
}
Es ist String nicht Zeichenfolge –
@cketbach: Whoops, habe zu viel C# getan ... –
Und können wir nicht die Felder endgültig machen, jetzt das Sie haben eine garantierte Initialisierung durch die Konstruktoren bereitgestellt? –
public class Bibabu{
private String name;
private int credits;
private int contactHours;
public Bibabu(){
name = ""; // you could also write this.name and so on...
credits = 0;
contactHours= 0;
}
// more code here
}
Danke, ich unterrichte mich selbst Java und habe alle anderen schwierigeren Teile ohne Probleme gemacht, aber diese Methode hat mir einige Probleme bereitet, danke nochmal für die schnelle Antwort. – Pieter
"Bibabu" ist ein neuer "Standardname" für mich :) –
Sie brauchen nicht einen Konstruktor:
public class Dummy
{
private int credits = 0;
private int contactHours=0;
private String name="";
/*
public Dummy()
{
name = "";
credits = 0;
contactHours = 0;
}
*/
// More stuff here, e.g. property accessors
}
Ich würde nur den Wert von 'name' voreinstellen, wenn kein anderer Konstruktor es setzen würde - und ich würde erwarten, dass es andere Konstruktoren gibt, die * Werte * annehmen. (Siehe meine bearbeitete Antwort für ein Beispiel.) –
Noch mehr .. Sie müssen Ganzzahlen nicht initialisieren. –
Das ist nur wahr, wenn mit 0 initialisiert :-). Ich denke, es ist einfacher zu lesen, wenn das Attribut mit 0 initialisiert wird. –
//constructor
public Account(int id, double balance, Person owner){
this.id = id;
this.balance = balance;
this.owner = owner;
public class Test {
private String name;
private int credits;
private int contactHours;
public Test {
this("", 0, 0);
}
public Test (String name, int credits, int contactHours) {
this.name = name;
this.credits = credits;
this.contactHours = contactHours;
}
// more code here
}
- 1. Generics Standardkonstruktor Java
- 2. Java mit Standardkonstruktor
- 3. Standardkonstruktor in Klassendatei
- 4. Typ nicht über einen Standardkonstruktor verfügen AutoMapper
- 5. StructureMap: Wie definieren Sie einen Standardkonstruktor für ein offenes Generikum?
- 6. Standardkonstruktor in C
- 7. Wenn CDI in Java verwendet wird, ist der Standardkonstruktor erforderlich?
- 8. Gibt es einen Standardkonstruktor mit einem statischen Konstruktor in C#?
- 9. Standardkonstruktor Strukturkarte in einem generischen Repository definieren
- 10. einen Satz von Arrays in Java erstellen
- 11. Mehr als einen Kreis in Java erstellen
- 12. Kein Standardkonstruktor?
- 13. Android - kein Standardkonstruktor in Sicht
- 14. Erstellen Sie einen Schauspieler
- 15. Erstellen Sie einen eigenständigen Java-Websocket-Client-Endpunkt?
- 16. So erstellen Sie einen zusammengesetzten Primärschlüssel (Java-Persistenz-Annotation)
- 17. Wie "leert" Sie einen StringWriter in Java?
- 18. Kopierkonstruktor und Standardkonstruktor
- 19. Reduzieren der Größe eines std :: vector ohne einen Standardkonstruktor
- 20. Seltsamer Fehler mit Standardkonstruktor (C++)
- 21. Erstellen Sie einen Dom Baum lesen HTML mit Java
- 22. So erstellen Sie einen automatischen Pfad für eine Java-Anwendung
- 23. So erstellen Sie einen RSS 2.0-Feed mit Java
- 24. STL-Vektor und C++: Wie zu .Resize ohne einen Standardkonstruktor?
- 25. Es gibt keinen Standardkonstruktor in android.widget.ProgressBar
- 26. Standardkonstruktor mit leeren Klammern
- 27. Compact Framework - Wie erstelle ich dynamisch einen Typ ohne Standardkonstruktor?
- 28. MVVM - Muss die View wirklich einen Standardkonstruktor haben?
- 29. Ruft new [] den Standardkonstruktor in C++ auf?
- 30. Erstellen Sie Listen mit Java
Methoden haben keine Konstrukteure. Angenommen, Sie meinen eine Klasse, dann lesen Sie die Dokumentation. Dies ist sicherlich eine Aufgabe –
Verdammt ... Solch ein Standard-Konstruktor riecht Mutabilität :( – SyntaxT3rr0r