-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
notesnotesnotes
Description
方法的重载 overload
定义:一个类中方法名字相同,但是参数列表不同的方法。
- 形参的数量不同
- 形参的类型不同
均可以构成方法的重载(也就是说是不同的方法)
static void add(){
}
static void add(int a,int b)
{
System.out.println(a+b);
}
static void add(double a,double b)
{
System.out.println(a+b);
}
当返回值不同时,但形参形同时,无法构成
static int add(int a,int b,int c){
System.out.println(a+b+c);
return a+b+c;
}
static double add(int a,int b,int c){
System.out.println(a+b+c);
return a+b+c;
}
方法的调用机制
- 当程序执行到方法时,会在栈中单独开一个空间(栈空间)
- 执行完毕,或者执行到return语句后,就会返回到 调用方法的地方
- 同理,main方法栈执行完毕之后,栈空间也会回收,整个程序退出
方法的传参
- 基本数据类型传参:形参不影响实参的传递(本质上栈中main方法区与swap方法区是两个区,两者不会相互影响)
- 引用数据类型传参:传递过程传递的其实是地址,所以栈方法指向的空间和main主方法指向的空间是一致的
可变参数
Java中允许同一个类中多个同名 同功能但是参数个数不同的方法,封装成一个方法。
==>对方法重载的一种优化,不用因为参数个数不同而写多个方法了
可以把传入的参数nums 视为数组
public int getSum(int... nums) {
System.out.println("参数的个数" + nums.length);
int tolNums = 0;
for (int i = 0; i < nums.length; i++) {
tolNums += nums[i];
}
return tolNums;
}
- 可以直接传递一个数组
- 可变参数可以和普通类型参数放在一起传参,但是必须保证可变参数放在最后
- 一个形参列表只允许出现一个可变参数,不可以多个可变参数一块。
Metadata
Metadata
Assignees
Labels
notesnotesnotes