一、方法重载 overload
-
语法
- 方法名相同
- 参数列表不一样
a. 个数不一样
b. 类型不一样
c. 顺序不一样
-
理解:
调用某一方法的时候,发现该方法的参数列表不满足需求,那么就需要重新创建同名的方法,
参数列表不一样 =====> 即实现 【方法重载】
示例一:
public int add(int x,int y){
return x+y;
}
public int add(int x,int y,int z){
return x+y +z;
}
public double add(double x,double y){
return x+y;
}
public double add(int x,double y){
return x+y;
}
public double add(double x,int y){
return x+y;
}
public double add(float x){
return x;
}
public void add(char x){
}
public void add(int x){
}
//add方法调用
computer1.add(10,20);
computer1.add(10,30.7);
computer1.add('a');
computer1.add(10,20,30);
-
构造函数也构成方法重载
public Computer(){}
public Computer(String computerBrand, String computerColor, double computerWeight) {
this.computerBrand = computerBrand;
this.computerColor = computerColor;
this.computerWeight = computerWeight;
}
二、 构造函数 Constructor
-
作用:初始化对象
-
语法:
-
无参构造函数 (默认隐藏)
-
有参构造函数
-
注意:
-
1. 无参构造函数 默认隐藏 2. 有了有参构造函数,默认会把无参构造函数 覆盖掉, 3. 若还想调用 无参构造函数,则 必须把 无参构造函数 显式的写出来
示例:
public class Computer {
public Computer(){...} // 无参构造函数 (默认隐藏)
public Computer(String computerBrand){...} //有参构造函数
public Computer(String computerBrand, String computerColor){...} //有参构造函数
public Computer(String computerBrand, String computerColor, double computerWeight){...} //有参构造函数
}
创建对象的内存实现过程
(1) 通过无参构造函数 实例化 对象
public class Computer {
private String computerBrand ;//电脑品牌名称
private String computerColor; //电脑颜色
private double computerWeight;//电脑重量
//默认隐藏 构造函数 Constructor
//无参构造函数
public Computer(){}
}
//测试类
public class ComputerTest {
public static void main(String[] args) {
Computer computer1 = new Computer(); // new : 创建对象,在堆开辟一块内存
// Computer() : 调用无参构造函数
}
}
(2)通过有参构造函数 实例化 对象
public class Computer {
private String computerBrand ;//电脑品牌名称
private String computerColor; //电脑颜色
private double computerWeight;//电脑重量
//默认隐藏 构造函数 Constructor
//无参构造函数
public Computer(){}
public Computer(String computerBrand, String computerColor, double computerWeight) {
this.computerBrand = computerBrand;
this.computerColor = computerColor;
this.computerWeight = computerWeight;
}
}
//测试类
public class ComputerTest {
public static void main(String[] args) {
Computer computer2= new Computer("ThinkPad","White",49.9);
}
}