Java 无效方法 Return

Java Void Methods Return

Java: 为什么一个方法叫做 void(即它没有 return 任何东西)如果它 return 是这样的:

System.out.println("Something");

例如:

public static void sayHello() {
        System.out.println("Hello");
}

它做了 return 事情,这条消息!

这个方法一些事情(打印"Hello"),但它不return任何事情。如果它 return 编辑了一个值,您可以这样做:

aVariableToAssignReturnValue = sayHello(); //you can't do it!

例如阅读this

我会说它会向标准输出打印一条消息,但不会 return 向调用语句打印任何内容。

它没有return任何可以存储在变量中的东西。

所以根本就没有return任何东西。

但它可以执行诸如打印到控制台之类的操作。

考虑这两个例程。

public void sayHello() { System.out.println("Hello"); }

public int giveANumber() { System.out.println("Hi"); return 42; }

你怎么称呼他们?

sayHello();
int i = giveANumber();

因为 sayHello 是空的,所以调用时没有等号,左边也没有。但是,由于 giveANumber returns 是一个 int,因此您应该使用等号和一个整数来调用它以接收左侧的值。

在编程语言历史上有 Algol68,它可能是所有语言中最好的过程语言。这是第一种完全定义的语言,一切都是类型化的。是这么说和表达的语言。

其中VOID是一个单值SKIP的类型。一个 PROC () VOID,一个方法,可以被强制为 VOID,做一个调用。

"Return" 在这种情况下意味着一个值通过堆栈传回,该值可以分配给调用代码中的变量。你的例子不是这种情况。

Object o = sayHello(); // WRONG - Compile error

void 方法可以做一些事情 - 在您的情况下打印到屏幕。这不是此处描述的 "return"。

由于问题在页面顶部显示为 "Java Void Methods Return",在 "Void" 上带有大写字母 "V",可能还值得注意的是 Java 有一个 class "Void" 除了关键字 "void." 声明为 return Void 的方法做 return 一些事情 - 但如果是你的情况,你应该检查文档class 因为这是一种特殊情况。

简单明了,因为你是让他执行某事而不返回某事。你的方法 returns 一个空洞,没有任何意义。作为一名 c 程序员,在 C 中,一个 returns 什么都没有的方法被称为过程。更多结帐 What is the difference between a "function" and a "procedure"?.

sayHello() 没有 return 声明;因此,它是一个 void 方法。根据您的假设,唯一真正的 void 方法将如下所示:public static void wowSuchVoid(){ }。甚至有什么意义?