JAVA面向对象编程 - 构造方法的重载

假如有如下这样一个程序

//创建一个名为Daxia(大侠)的类。
//输入属性:姓名,外号,年龄,帮派
public class Daxia{
    
    
	String name;
	String waihao;
	int age;
	String bangpai;

//构造大侠的构造方法,初始化大侠对象
	public Daxia(String name, String waihao, int age, String bangpai){
    
    
	this.name = name;
	this.waihao = waihao;
	this.age = age;
	this.bangpai = bangpai;
	}

//开始我们的main函数

	public static void main(String[] args){
    
    
		Daxia dx1 = new Daxia("武松","行者",21,"梁山");
	}

这个程序创建了一个大侠类,并且创建了武松大侠。
如果我想构建一个新的大侠对象,但是该大侠没有外号,应该如何进行初始化呢?

那不然,我们就构建两个构造函数,这就称为构造方法的重载

//构造函数1
	public Daxia(String name, int age, String bangpai){
    
    
	this.name = name;
	this.age = age;
	this.bangpai = bangpai;
	}
	
//构造函数2
	public Daxia(String name, String waihao, int age, String bangpai){
    
    
	this.name = name;
	this.waihao = waihao;
	this.age = age;
	this.bangpai = bangpai;
	}

但是我们发现,这两个构造函数相似的地方实在是太多了,有许多重复的代码,我们如何让代码看起来更简洁一些呢?

还记得this的用法吗?使用this可以初始化我们当前执行的对象的属性。它也可以调用当前类中其他的构造方法。

//构造函数1
	public Daxia(String name, int age, String bangpai){
    
    
	this.name = name;
	this.age = age;
	this.bangpai = bangpai;
	}
	
//构造函数2
	public Daxia(String name, String waihao, int age, String bangpai){
    
    
	this(name, age, bangpai);
	this.waihao = waihao;
	}


猜你喜欢

转载自blog.csdn.net/m0_71290816/article/details/127725642