方法重载
一、定义:一个类中含两个以上同名的方法,他们之间就构成重载。允许多个方法的名称相同,但参数列表不同。
二、注意事项:
- 方法名必须相同。
- 形参列表必须不同(形参个数或者顺序至少有一个不同,参数名无要求)。
- 返回值类型无要求。
//形参列表必须不同,参数名无要求
public int calculate(int n1, int n2){
Systen out println(" calculate(int n1, int n2) 被调用");
return n1+n2;
//看看下面是否构成重载?没有构成,而是方法的重复定义。
public int calculate(int a1, int a2){
System.out. println(" calculate(int n1, int n2)被调用");
return a1+a2;
}
//返回值无要求
public int calculate(int n1, int n2){
System.out.println("calculate(intn1,int n2)被调用");
return n1+n2;
}
//没有构成方法重载,仍然是错误的,因为是方法的重复定义
public void calculate(int n1, int n2){
System.out.println("calculate(intn1,int n2)被调用");
int res=n1+n2;
}
可变参数
一、定义:将名称相同,功能也相同,但是形参个数不同的多个函数,封装为某个类中的一个函数。
访问权限修饰符 返回值类型 函数名 (数据类型… 变量名){
//方法体
}
这里的…格式是固定的,不可以改变分毫
二、规范
- 调用可变参数的方法时,传入实参的个数可以是0~n(n = 0,1,2…)
- 传入的实参也可以直接是一个数组。
- 可变参数的本质,其实就是一个数组,因此你也可以把它当数组来用。
- 当形参中既含有可变参数,也含有普通的参数,必须确保可变参数在形参列表的最后。
- 每个形参列表都只能有一个可变参数。
/*
有三个方法,分别实现返回姓名和两门课成绩(总分),返回姓名和三门课成绩(总分),返回姓名和五门课成绩(总分)。
封装成一个可变参数的方法
*/
//分析 1.方法名 showScore 2.形参(String ,double...) 3.返回String
class myhMethod {
public String showScore(String name , double... scores ){
double totalScore=0;
for(int i = 0; i < scores.length ; i++){
totalScore += scores[i];
}
return name+scores.length+"门课的成绩总分为"=totalScore;
}
{