gpt4 book ai didi

java - 为什么缺席返回类型没有编译错误

转载 作者:行者123 更新时间:2023-12-02 11:38:17 26 4
gpt4 key购买 nike


我试图理解方法重载的概念。

public class Demo {

public int myMethod(int num1, int num2) {
System.out.println("First myMethod of class Demo");
return num1 + num2;
}

public double myMethod(double var1, double var2) {
System.out.println("Second myMethod of class Demo");
return var1 - var2;
}

public static void main(String args[]) {
Demo obj1 = new Demo();
//here
obj1.myMethod(10, 10);
// and here
obj1.myMethod(20, 12);
}
}

我试图找出为什么 obj1.myMethod(10, 10); 中缺少返回类型没有编译错误 obj1.myMethod(20, 12); 声明。
显然 myMethod() 都返回 int 和 double。

为什么没有编译错误呢?请帮助我理解。

最佳答案

myMethod() 都返回一些内容。您调用这些方法:

obj1.myMethod(10, 10);
obj1.myMethod(20, 12);

但是你对这个返回值什么也不做。您可能需要考虑将这些方法的返回值存储在变量中,例如:

int first = obj1.myMethod(10, 10); //assigning return value of myMethod to int variable

然后您可以打印first,看看使用myMethod()计算出的返回值是多少:

System.out.println(first);

另一种可能性,不是将返回值存储在变量中,而是直接将返回值打印到控制台:

System.out.println(obj1.myMethod(10, 10));

请注意,在这两个方法调用中:

obj1.myMethod(10, 10);
obj1.myMethod(20, 12);

正在调用返回 int 的方法 (public int myMethod(int num1, int num2) {...})。这是因为您将 int 参数传递给 myMethod()。如果您希望调用返回 double 的方法变体,您可以将参数更改为 double 值:

obj1.myMethod(20.0, 12.0); // here you pass two double values as arguments

或者:

obj1.myMethod((double) 20,(double) 12); // here you cast int values to double

关于java - 为什么缺席返回类型没有编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48766422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com