私有void中的java编码分配解释

私有void中的java编码分配解释,java,private,void,Java,Private,Void,有人能解释一下这是怎么回事吗?我得到了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"); }

有人能解释一下这是怎么回事吗?我得到了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);
  }
}

看。编译器选择了具有签名
private void print(int x)
的方法,因为您传递了一个int。

然后一个类有多个具有相同名称和不同参数列表的方法,这称为方法重载
print
是类中的重载方法。使用时,使用的方法取决于调用中使用的参数的数量和类型:使用最佳匹配方法。因为您使用了
12
,这是一个整数文本,它的类型为
int
,所以调用了
print(int)
。如果没有使用任何参数,则会调用
print()
。如果您使用了
print(“foo”)
,则会调用
print(String)



旁注:请使用,至少在请求帮助时使用(但最好在不请求帮助时使用)。您的类应该被称为
Adarsh
,而不是
Adarsh

您尝试的是方法重载的一个例子,它允许不同的方法具有相同的名称,但是不同的签名,其中签名可能因输入参数的数量或输入参数的类型或两者而不同

在代码中,object.print(12)根据参数类型匹配方法。 通过传递一个int12来调用该方法,因此将调用以int作为参数的方法,并打印c

使用重载

我们不必为做相同事情的函数创建和记住不同的名称。例如,在代码中,如果Java不支持重载,则必须创建方法名,如print1、print2、print3……等等。。虽然所有方法都做相同的打印工作。从而提高了代码的可读性

还有一件事,请使用Java命名约定

  • 类名应为名词,大小写混合,每个内部单词的第一个字母大写

  • 使用完整的单词,必须避免使用首字母缩略词和缩写词


学习使用调试器;学习你自己比我们告诉你答案会让你受益更多。你得到
c
,因为你调用了一个int
print(12)
,另一件事请从阅读开始,它在Java中被称为“方法重载”。检查一下我应该在object.print()中输入什么;要打印'a'@ghost_83-正如我上面所说,“如果没有使用参数,
print()
。”在我的代码中,我做了一个小小的改变,添加了私有的void print(float f){System.out.println(“x”)},并在底部对象中添加了它。print(15.22); 它没有编译。。。我到底做错了什么here@ghost_83-错误消息告诉您原因:没有
打印(双重)
15.22
是一个
double
,而不是
float