Ce n'nul n'en java?
Le type de retour—le type de données de la valeur retournée par la méthode, ou nulle si la méthode ne retourne pas de valeur.
http://download.oracle.com/javase/tutorial/java/javaOO/methods.html
Ok, alors.. Voici ma question:
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
Le code ci-dessus ne fonctionne pas sans nuls.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method tellItLikeItIs() is undefined for the type EnumTest
Qu'ai-je manqué?
Pourquoi est-il vide?
Et elle retourne une chaîne de caractères?
Toutes les méthodes en Java doit être un type de retour. vide dire à la machine virtuelle que la méthode ne retourne rien.
Ils ont choisi vide, car il va de pair avec la valeur "null". J'aurais préféré qu'ils utilisés "vide" (qui sonne un peu étrange, mais ne le ferions pas si nous avions l'ai utilisé pendant 20 ou 30 ans.)
Vous ne pouvez pas supprimer le mot
Ils ont choisi vide, car il va de pair avec la valeur "null". J'aurais préféré qu'ils utilisés "vide" (qui sonne un peu étrange, mais ne le ferions pas si nous avions l'ai utilisé pendant 20 ou 30 ans.)
Vous ne pouvez pas supprimer le mot
void
ici parce que c'est ce que la structure de la langue exige. Définitions de méthodes attendons de vous que vous spécifiez le type de retour; vous de l'écrire quelque part. Et c'est juste en face du nom de la méthode.
OriginalL'auteur Alice | 2011-09-09
Vous devez vous connecter pour publier un commentaire.
La raison, le code ne fonctionnera pas sans
void
est parce que leSystem.out.println(String string)
méthode ne retourne rien et se contente d'afficher les arguments fournis à la norme de la borne de sortie, qui est le moniteur de l'ordinateur dans la plupart des cas. Lorsqu'une méthode retourne "rien", vous devez spécifier qu'en mettant levoid
mot-clé dans sa signature.Vous pouvez voir la documentation du Système..println ici:
http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29
De presse sur le sujet, println est un exemple classique d'une méthode qui consiste à effectuer le calcul comme un "effet secondaire."
OriginalL'auteur Dhruv
Vous dire la
tellItLikeItIs
méthode? Oui, vous devez spécifiervoid
de préciser que la méthode n'est pas retourne rien. Toutes les méthodes ont d'avoir un type de retour spécifiée, même si c'estvoid
.Il n'est certainement pas à retourner une chaîne de caractères, il n'y a pas de retour des états n'importe où. Ce n'est pas vraiment clair pourquoi vous pensez que c' est de retourner une chaîne de caractères. C'est impression chaînes à la console, mais ce n'est pas la même chose que de les retourner une à partir de la méthode.
OriginalL'auteur Jon Skeet
Nul ne retourne rien; il dit au compilateur que cette méthode n'ont pas de valeur de retour.
OriginalL'auteur Dave Newton
void
signifie qu'il ne retourne rien. Il ne renvoie pas une chaîne, vous écrire une chaîne deSystem.out
mais vous n'êtes pas de retour.Vous devez spécifier ce qu'est une méthode retourne, même si vous êtes juste de dire qu'il ne retourne rien.
Techniquement parlant, ils pourraient avoir conçu la langue tels que si vous n'écrivez pas un type de retour alors qu'il est supposé renvoyer rien, cependant vous faire explicitement écrire
void
permet de s'assurer que l'absence d'une valeur retournée est intentionnelle et non accidentelle.OriginalL'auteur Davy8
Lorsque le type de retour est void, votre méthode ne retourne rien.
Regardez à nouveau votre code: Il n'y a pas de retour dans la méthode. Vous imprimez à la console et à la sortie.
OriginalL'auteur duffymo
Vide: le modificateur de type void états que la principale méthode ne retourne aucune valeur. Tous les paramètres d'une méthode sont déclarées à l'intérieur d'un prieur de la parenthèse. Ici String args[ ] déclare un paramètre nommé args qui contient un tableau d'objets de la classe de type chaîne de caractères.
OriginalL'auteur KABEZA J.paul