【发布时间】:2011-09-09 20:59:55
【问题描述】:
返回类型——方法返回值的数据类型,如果方法没有返回值,则为 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();
}
}
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
我错过了什么? 为什么里面有空? 它确实返回一个字符串?
【问题讨论】:
-
Java 中的所有方法都必须是一种返回类型。 void 告诉虚拟机该特定方法不会返回任何内容。
-
他们选择了 void,因为它与“null”密切相关。我更喜欢他们使用“空”(这听起来很尴尬,但如果我们已经使用它 20 或 30 年就不会了。)
-
您不能在此处删除单词
void,因为这是语言结构所要求的。方法的定义期望你指定返回类型;你必须在某处写下来。这只是在方法名称的前面。