Java方法重载
含义:
在同一个类中,有相同的方法名称,但方法的参数参数列表不同
规则:
- 每个重载的方法的方法名必须相同
- 每个重载的方法的形参列表必须不同
- 方法的返回值类型可以不同也可以相同
- 返回值类型不同不能构成方法的重载
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Demo02 de = new Demo02();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入两个数");
System.out.print("请输入第一个数字:");
int a = scanner.nextInt();
System.out.print("请输入第二个数字:");
int b = scanner.nextInt();
int sum = de.add(a, b);
System.out.println("这两个数字的和是:" + sum);
de.add('a', 'd');
System.out.println(de.add(12.3, 23.3));
}
/*
以下代码对方法进行了重载
方法重载时返回值可以相同
每个重载方法的形参列表不同
*/
public void add(char a, char b)
{
System.out.println("你输入的不是数字");
}
public int add(int a, int b)
{
return a + b;
}
public double add(double a, double b)
{
return a + b;
}
public int add(int a, int b, int c)
{
return a + b + c;
}
}
可变长参数
- JDK1.5开始,Java支持传递同类型的可变参数给一个方法
- 在方法声明中,在指定参数类型后加一个省略号(…)
- 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通参数必须在它之前声明
package com.li.method;
public class Demo04 {
public static void main(String[] args) {
Demo04 de = new Demo04();
System.out.println(de.add(23, 32, 43, 35, 321));
}
//可变参数的方法
public double add(double a, int... b)
{
int sum = 0;
for (int i = 0; i < b.length; i++)
{
sum += b[i];
i++;
}
return a + sum;
}
}