有人可以解释一下这是怎么回事吗?我得到c作为输出,这是我在java上的第三天。提前感谢
class adarsh
{
private void print( ){
System.out.println("a");
}
private void print(String str){
System.out.println("b");
}
private void print(int x){
System.out.println("c");
}
public static void main(String[] args){
adarsh object = new adarsh();
object.print(12);
}
}
答案 0 :(得分:3)
然后,一个类有多个具有相同名称和不同参数列表的方法,称为方法重载。 print
是类中的重载方法。使用它时,所使用的方法取决于调用中使用的参数的数量和类型:使用最佳匹配方法。因为您使用的是12
(它是整数文字),所以它的类型为int
,因此调用了print(int)
。如果不使用任何参数,则将调用print()
。如果您使用过print("foo")
,将调用print(String)
。
旁注:请至少在寻求帮助时使用Java naming conventions(但最好也不要寻求帮助)。您的班级应该叫做Adarsh
,而不是adarsh
。
答案 1 :(得分:1)
请参见Method overloading in Java。自从您传递print int以来,编译器就选择了具有签名private void print(int x)
的方法。
答案 2 :(得分:1)
您尝试过的例子是方法重载的示例,该示例允许不同的方法具有相同的名称,但是不同的签名的签名可能因输入数量而不同参数或输入参数的类型或两者兼有。
在您的代码中,object.print(12)根据参数类型匹配方法。 您通过传递 int 12来调用该方法,以便调用以 int作为参数的方法,并显示 c
超载的使用
我们不必为执行相同功能的函数创建和记住不同的名称。例如,在代码中,如果Java不支持重载,则必须创建方法名称,例如print1,print2,print3…等。尽管所有方法都执行相同的打印工作。从而提高了代码的可读性。
还有一件事,请使用Java命名约定
类名应为名词,大小写混合,每个内部单词的首字母应大写。
使用整个单词,并且必须避免使用首字母缩写词和缩写。