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

Java 为什么缺席返回类型没有编译错误,java,compiler-errors,return-type,Java,Compiler Errors,Return Type,我试图理解方法重载的概念 我试图找出为什么在obj1.myMethod10,10中缺少返回类型时没有编译错误;obj1.myMethod20,12;声明。 显然,myMethods都返回int和double 为什么没有编译错误呢?请帮助我理解 两个myMethod都返回了一些东西。您可以将这些方法称为: obj1.myMethod(10, 10); obj1.myMethod(20, 12); 但是你对这个返回值什么也不做。您可能需要考虑将这些方法的返回值存储在变量中,例如: int firs

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

我试图找出为什么在obj1.myMethod10,10中缺少返回类型时没有编译错误;obj1.myMethod20,12;声明。 显然,myMethods都返回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
然后您可以先打印,以查看使用myMethod计算的返回值:

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

System.out.println(obj1.myMethod(10, 10));
请注意,在两个方法调用上:

obj1.myMethod(10, 10);
obj1.myMethod(20, 12);
返回int的方法被称为public int myMethodint num1,int num2{…}。这是因为您向myMethod传递了int参数。如果希望调用返回double的方法变量,可以将参数更改为double值:

或:


允许忽略方法返回的值。因为有两个具有不同签名的重载方法,并且您调用单个方法两次,double表示0.0浮点值这是java设计本身。详细信息请参阅:在Java中,您不必处理被调用方法的返回值,编译错误意味着您的代码与编程语言的语法不匹配。例如,您声明了一个int变量,并通过调用具有双返回值的方法对其进行赋值,反之亦然,如果返回类型存在,则不将返回值赋值给变量。
System.out.println(obj1.myMethod(10, 10));
obj1.myMethod(10, 10);
obj1.myMethod(20, 12);
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