返回类型 - 方法返回的值的数据类型,如果方法未返回值,则返回void.
http://download.oracle.com/javase/tutorial/java/javaOO/methods.html
好的,那么..这是我的问题:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
http://download.oracle.com/javase/tutorial/java/javaOO/enum.html
如果没有void,上面的代码不起作用.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method tellItLikeItIs() is undefined for the type EnumTest
Run Code Online (Sandbox Code Playgroud)
我错过了什么?为什么那里有空白?它确实返回一个字符串?
Jon*_*eet 14
你的意思是tellItLikeItIs方法?是的,您必须指定void指定该方法不返回任何内容.所有方法都必须指定返回类型,即使它是void.
它肯定不会返回一个字符串 - 看,在任何地方都没有返回语句.为什么你觉得它不是一个真正明确的是返回一个字符串.它正在向控制台打印字符串,但这与从方法中返回一个字符串不同.
代码无法工作的原因void是因为该System.out.println(String string)方法没有返回任何内容,只是将提供的参数打印到标准输出终端,在大多数情况下是计算机监视器.当方法返回"nothing"时,您必须通过将void关键字放在其签名中来指定.
您可以在此处查看System.out.println的文档:
http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29
为了进一步解决这个问题,println是一种将计算作为"副作用"执行的方法的典型示例.