【问题标题】:What does void do in java?void在java中做了什么?
【发布时间】: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,因为这是语言结构所要求的。方法的定义期望你指定返回类型;你必须在某处写下来。这只是在方法名称的前面。

标签: java void


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    没有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 是一个典型的例子,它把计算作为一个“副作用”来执行。

    【讨论】:

      【解决方案3】:

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

      再次查看您的代码:该方法没有返回值。您打印到控制台并退出。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          void 表示它什么也不返回。它不返回字符串,您将字符串写入System.out 但您没有返回。

          你必须指定一个方法返回什么,即使你只是说它什么也不返回。

          从技术上讲,他们可以设计这种语言,如果您不编写返回类型,则假定它不返回任何内容,但是让您明确写出 void 有助于确保缺少返回值是故意的而不是偶然的。

          【讨论】:

          • 你说的有什么不同,一个方法什么都不返回,但它在控制台上打印一些东西
          【解决方案6】:

          Void:类型修饰符void表示main方法不返回任何值。方法的所有参数都在括号的先验内声明。此处 String args[ ] 声明了一个名为 args 的参数,其中包含类类型字符串的对象数组。

          【讨论】:

            猜你喜欢
            • 2012-08-07
            • 1970-01-01
            • 2011-04-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-27
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多