void在void中做了什么?

时间:2011-09-09 20:59:56

标签: java void

  

返回类型 - 方法返回的值的数据类型,如果方法未返回值,则返回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

如果没有空格,上述代码无效。

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method tellItLikeItIs() is undefined for the type EnumTest

我错过了什么? 为什么那里有空白? 它确实返回一个字符串?

6 个答案:

答案 0 :(得分:14)

你的意思是tellItLikeItIs方法?是的,您必须指定void以指定方法返回任何内容。所有方法都有指定了返回类型,即使它是void

它当然不会返回一个字符串 - 看,在任何地方都没有返回语句。为什么你认为 返回一个字符串并不是很清楚。它是打印字符串到控制台,但这与从方法中返回一个字符串不同。

答案 1 :(得分:9)

代码在没有void的情况下无法工作的原因是因为System.out.println(String string)方法没有返回任何内容,只是将提供的参数打印到标准输出终端,在大多数情况下是计算机监视器。当方法返回“无”时,您必须通过将void关键字放在其签名中来指定。

您可以在此处查看System.out.println的文档:

http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29

为了进一步解决这个问题,println是一种将计算作为“副作用”执行的方法的典型示例。

答案 2 :(得分:0)

虚空不会返回任何东西;它告诉编译器该方法没有返回值。

答案 3 :(得分:0)

void表示它什么都不返回。它不返回一个字符串,你将一个字符串写入System.out,但你没有返回一个字符串。

您必须指定方法返回的内容,即使您只是说它什么都不返回。

从技术上讲,他们可以设计这样的语言,如果你不写一个返回类型,那么它被假定为什么都不返回,但是让你明确写出void有助于确保缺少返回值是故意的而不是偶然的。

答案 4 :(得分:0)

当返回类型为void时,您的方法不会返回任何内容。

再看一下你的代码:那个方法没有回报。您打印到控制台并退出。

答案 5 :(得分:0)

Void:类型修饰符void表示main方法不返回任何值。方法的所有参数都在括号之前的内部声明。这里String args []声明了一个名为args的参数,该参数包含类类型为string的对象数组。