方法重载与构造函数

一、方法重载 overload

  • 语法

    1. 方法名相同
    2. 参数列表不一样
      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. 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);
    }
}

内存图2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值