方法重载:overload
为什么会有方法的重载?
在同一个类中有一些方法的功能相同,仅仅是参数列表不一样,此时如果去定义不同的方法名很麻烦,于是规定,方法名可以一样,但是参数列表必须不一样。所以就有了方法的重载。
方法重载的判断标准:同类同名不同参,与其他无关。
参数列表不同:不同的参数列表:个数不同,类型不同,顺序不同
package Overload;
public class Defined {
// 属性,成员变量:这两个是一个意思
// 在所有方法中都可以使用
int numb1;
int numb2;
int numb3;
int numb4;
int sums;
// 无参构造方法
public Defined() {
super();
}
// 有参构造方法
public Defined(int numb1, int numb2, int numb3, int numb4) {
this.numb1 = numb1;
this.numb2 = numb2;
this.numb3 = numb3;
this.numb4 = numb4;
}
// 现象:方法重载
// 前提:在同一个类中,方法名相同,参数列表不同的方法
// 参数列表不同:个数不同,顺序不同,类型不同
public void sum(){
sums = numb1+numb2+numb3+numb4;
System.out.println(sums);
}
// 局部变量:sum(int numb1,int numb2)括号括起来的只在这个方法内使用
public void sum(int numb1,int numb2){
sums = numb1+numb2+numb3+numb4;
System.out.println(sums);
}
public void sum(int numb1,int numb2,int numb3){
sums = numb1+numb2+numb3+numb4;
System.out.println(sums);
}
public void sum(int numb1,int numb2,int numb3,int numb4){
sums = numb1+numb2+numb3+numb4;
System.out.println(sums);
}
}
package Overload;
public class Test {
public static void main(String[] args) {
// 无参构造方法
Defined text = new Defined();
// 重载演示
text.sum();
text.sum(5,10);
text.sum(5,10,15);
text.sum(5,10,15,20);
}
}
成员变量与局部变量
成员变量是属于类的变量,其实就是类中的属性,类中的每一个方法都可以共享;
局部变量就是定义在某个方法中的变量,只能在定义的方法中访问,其他的方法不能共享;
**成员变量和局部变量区别: **
1:定义位置不同
成员变量:定义在类中的变量,属于类
局部变量:定义在方法中的变量,属于方法
2:作用域不同
成员变量:属于类,类中的每一个方法都可以使用
局部变量:属于方法,只能在某一个方法中使用
3:初始值不同
成员变量:有默认的初始值,在加载类的时候,就会给成员变量赋值(默认值)
局部变量:没有初始值,必须初始化之后才可以使用
4:生命周期不同
成员变量:属于类,随着对象的创建而创建,随对象的消失而消失- 垃圾回收器
局部变量:属于方法,随着方法的调用而创建
注意:
1:在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级
2:在方法的参数列表中的参数,也是局部变量