当前位置: 首页 > 编程笔记 >

基于Java中参数顺序的方法重载

暴博远
2023-03-14
本文向大家介绍基于Java中参数顺序的方法重载,包括了基于Java中参数顺序的方法重载的使用技巧和注意事项,需要的朋友参考一下

在方法重载中,该类可以有多个具有相同名称的方法,但方法的参数列表不应相同。确保参数列表不同的一种方法是更改方法中参数的顺序。

演示此的程序如下所示-

示例

class PrintValues {
   public void print(int val1, char val2) {
      System.out.println("\nThe int value is: " + val1);
      System.out.println("The char value is: " + val2);
   }
   public void print(char val1, int val2) {
      System.out.println("\nThe char value is: " + val1);
      System.out.println("The int value is: " + val2);
   }
}
public class Demo {
   public static void main(String[] args) {
      PrintValues obj = new PrintValues();
      obj.print(15, 'A');
      obj.print('P', 4);
   }
}

输出结果

The int value is: 15
The char value is: A

The char value is: P
The int value is: 4

现在让我们了解上面的程序。

print()在方法重载的实现中,使用两个方法创建PrintValues类。其中的第一个分别接受2个类型为int和char类型的参数,另一个分别接受2个类型为char和int类型的参数。演示这的代码片段如下-

class PrintValues {
   public void print(int val1, char val2) {
      System.out.println("\nThe int value is: " + val1);
      System.out.println("The char value is: " + val2);
   }
   public void print(char val1, int val2) {
      System.out.println("\nThe char value is: " + val1);
      System.out.println("The int value is: " + val2);
   }
}

在该main()方法中,将创建类PrintValues的对象obj,并print()分别使用参数(15,'A')和('P',4)调用该方法两次。演示此代码段如下:

public class Demo {
   public static void main(String[] args) {
      PrintValues obj = new PrintValues();
      obj.print(15, 'A');
      obj.print('P', 4);
   }
}
 类似资料:
  • 问题内容: 我正在尝试以下代码: 打印三遍。我希望方法选择要考虑实际的(而不是声明的)参数类型。我想念什么吗?是否有修改此代码,以便它会打印的方式, 问题答案: 我希望方法选择要考虑实际的(而不是声明的)参数类型。我想念什么吗? 是。您的期望是错误的。在Java中,动态方法分派仅发生在调用方法的对象上,而不发生在重载方法的参数类型上。 引用Java语言规范: 调用方法时(第15.12节),实际参数

  • 我有一个对象列表,需要根据特定的顺序排序。如下代码所示: 这也是当它得到排序,只有名称(“宝马”,“奥迪”,“奔驰”)的位置正在改变。我在汽车课上还有一个字段,那就是数量。数量将处于相同位置。这个职位也应该随着名字而改变。 我希望输出为,但实际输出为

  • 问题内容: 在Java的同一类上给定两个方法: 哪里 如果我打电话给: 我发现它被调用。 我曾期望调用最接近的匹配协定而不是最抽象的过载(这就是我所发现的) 有人可以解释为什么吗? 问题答案: 使用了最具体的适用重载-但该重载是在 编译 时根据变量的编译时类型确定的。 换一种说法: 但: 请注意,这与 重载 不同,在 重载 中,重要的是目标对象的 执行时间 类型。

  • 我正在使用AeyJ拦截一个名为的方法。为此,我使用了我自己指定的(标记)注释。这就是类的样子: 截取截取注释的方面: 然而,我的方面是基于带注释的参数进行拦截。但我希望方面能够拦截参数t包含的特定值的方法请求。 例如,如果t==“t1”,则必须截取该方法,否则不能截取。 我想知道是否可以在AeyJ(与Spring AOP结合使用)中做到这一点。

  • 有人能彻底解释一下为什么这会打印21003和32103吗?我真的被这弄糊涂了。谢谢你!

  • 我对这个方法引用语法有点困惑。 需要一个双函数,然而,尽管温度较高,lessThanTemp仍然是有效的参数。lessThanTemp()只接受一个参数。 这一行到底发生了什么:? MCVE: