oop为什么必须在Java中指定方法返回类型?
有时我会看到这样声明的方法:
public MethodName() { ... }
其他时候,我会看到用一个类声明的方法,该类定义了它们返回的类型(?)。例如:
public ClassName methodName() { ... }
这有什么意义?为什么我必须指定返回类型
你可以在下面搜索框中键入要查询的问题!
有时我会看到这样声明的方法:
public MethodName() { ... }
其他时候,我会看到用一个类声明的方法,该类定义了它们返回的类型(?)。例如:
public ClassName methodName() { ... }
这有什么意义?为什么我必须指定返回类型
# 1 楼答案
是的,您必须始终指定方法返回类型。之所以必须这样做,是因为Java是强静态类型的,这意味着编译器必须在编译时知道所有表达式的类型
你看到的没有返回类型的方法实际上是类的constructor,使用它你可以创建类的实例
# 2 楼答案
当你有一个构造函数时,它没有返回类型,从技术上讲,签名是
<init>(Lpackage.Type;)V
,其中V
代表void
。它不返回该类型的对象,而是接受该类型的对象并对其进行初始化在JVM级别,返回类型是签名的一部分。如果使用类似
的方法编译程序,请考虑此方法。但是你以后会重新编译这个方法,而不是像这样调用它的方法
使用旧代码编译的方法将无法找到它们编译时使用的方法。这是因为编译这些方法时假设返回了
long
,而它们甚至可能不会在编译时返回int