Was bedeutet void tun in java?
Den return-type—der Datentyp des Werts, der von der Methode zurückgegeben, oder void wenn die Methode keinen Wert zurückgibt.
http://download.oracle.com/javase/tutorial/java/javaOO/methods.html
Okay, dann.. Hier meine Frage:
public class EnumTest {
Day day;
public EnumTest(Day day) {
this.day = day;
}
public void tellItLikeItIs() {
switch (day) {
case MONDAY: System.out.println("Mondays are bad.");
break;
case FRIDAY: System.out.println("Fridays are better.");
break;
case SATURDAY:
case SUNDAY: System.out.println("Weekends are best.");
break;
default: System.out.println("Midweek days are so-so.");
break;
}
}
public static void main(String[] args) {
EnumTest firstDay = new EnumTest(Day.MONDAY);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
thirdDay.tellItLikeItIs();
EnumTest fifthDay = new EnumTest(Day.FRIDAY);
fifthDay.tellItLikeItIs();
EnumTest sixthDay = new EnumTest(Day.SATURDAY);
sixthDay.tellItLikeItIs();
EnumTest seventhDay = new EnumTest(Day.SUNDAY);
seventhDay.tellItLikeItIs();
}
}
http://download.oracle.com/javase/tutorial/java/javaOO/enum.html
Der obige code funktioniert nicht ohne leere.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method tellItLikeItIs() is undefined for the type EnumTest
Was habe ich verpasst?
Warum ist da eine Lücke drin?
Und es macht einen string zurückgeben?
- Alle Methoden in Java muss ein zurück geben. leere Sag s auf der VM, dass bestimmte Methode wird nicht wieder alles.
- Sie holten nichtig, weil es geht hand und hand mit "null". Ich hätte es vorgezogen, Sie "leer" ist (das klingt umständlich, aber wäre nicht, wenn wir würden, benutze es schon seit 20 oder 30 Jahren.)
- Sie können nicht entfernen Sie das Wort
void
hier, weil das ist, was die Struktur der Sprache erfordert. Definitionen von Methoden erwarten die Angabe des Rückgabetyps; Sie haben zu schreiben Sie es auf irgendwo. Und das ist nur das vor dem Methodennamen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Grund wird der code nicht funktionieren, ohne
void
ist, weil dieSystem.out.println(String string)
Methode gibt nichts zurück und druckt nur die angegebenen Argumente verwendet werden, um die standard-out-terminal, die computer-monitor in den meisten Fällen. Wenn eine Methode gibt "nichts" müssen Sie angeben, dass, indem Sie dievoid
Schlüsselwort in seiner Signatur.Können Sie finden Sie in der Dokumentation des Systems.aus.println hier:
http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29
Drücken Sie die Frage weiter, println ist ein klassisches Beispiel für eine Methode, die Durchführung der Berechnung als "Nebeneffekt."
Du meinst die
tellItLikeItIs
Methode? Ja, Sie gebenvoid
um anzugeben, dass die Methode nicht etwas zurückzugeben. Alle Methoden haben haben ein Rückgabetyp angegeben ist, auch wenn esvoid
.Es sicherlich nicht einen string zurückgeben - schauen Sie, es gibt keine return-Anweisungen überall. Es ist nicht ganz klar, warum Sie denken, es ist Rückgabe eines string. Es ist drucken strings auf der Konsole, aber das ist nicht das gleiche wie die Rückgabe eines von der Methode.
Void nichts zurückgibt; es teilt dem compiler die Methode nicht über einen Rückgabewert verfügen.
void
bedeutet, es gibt nichts zurück. Es nicht einen string zurückgeben, die Sie schreiben, einen string zuSystem.out
aber du bist nicht wieder ein.Müssen Sie angeben, was für eine Methode gibt, auch wenn Sie einfach nur sagen, dass es nichts zurückgibt.
Technisch gesehen könnten Sie haben die Sprache, so dass, wenn Sie nicht schreiben Sie eine Rückkehr geben, dann ist es angenommen, dass nichts zurück, jedoch machen Sie ausdrücklich schreiben
void
hilft, um sicherzustellen, dass das fehlen eines zurückgegebenen Wert ist gewollt und nicht zufällig.Wenn der Rückgabetyp void ist, deine Methode nichts zurückgibt.
Einmal schauen, in deinem code: Es gibt keine Rückkehr in diese Methode. Sie drucken auf die Konsole und beenden.
Void: der Typ-Modifizierer void besagt, dass die main-Methode keinen Wert zurückliefern soll. Alle Parameter einer Methode deklariert sind, innerhalb einer vor der Klammer. Hier String args[ ] deklariert einen parameter mit dem Namen args enthält ein array von Objekten der Klasse Typ string.