当利用构造方法初始化赋值的时候,如果有5个成员变量,而我们只需要其中2到4个或者只有1个,但是构造方法中已经写好了所有变量,这时,我们可以利用JAVA重载的特性,去进行构造方法的再次编写,来达到我们的需求。
构造方法的重载
样例代码如下:
package 构造方法;
public class 构造方法的重载 {
public static void main(String[] args)
{
Person p1 = new Person();
p1.show();
Person p2 = new Person("路飞",18,"男",1,"十分帅气");
p2.show();
Person p3 = new Person("索隆",20,10,"更加帅气");
p3.show();
Person p4 = new Person(100);
p4.show();
}
}
class Person
{
//成员变量(类的属性)
private String name ;
private int age ;
private String sex;
private int money;
private String face;
//无参构造方法
public Person(){
System.out.println("我是-无-参构造方法!");
};
//有参构造方法1 全部变量 比如统计所有信息时调用
public Person(String name, int age, String sex, int money, String face) {
System.out.println("我是有参构造1");
this.name = name;
this.age = age;
this.sex = sex;
this.money = money;
this.face = face;
}
//有参构造方法2 除去了性别变量 假如这一堆人都是男的,就不用进行赋值了。
public Person(String name, int age, int money, String face) {
System.out.println("我是有参构造2");
this.name = name;
this.age = age;
this.money = money;
this.face = face;
}
//有参构造方法3 假如只登记年龄
public Person(int age) {
System.out.println("我是有参构造3");
this.age = age;
}
//setter和getter方法
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public String getFace() {
return face;
}
public void setFace(String face) {
this.face = face;
}
//成员方法
public void show(){
System.out.println("我的名字为:"+name+",今年"+age+"岁了"+"我是"+sex+"生,有"+money+"贝利,长相"+face);
}
}
输出结果为:
我是-无-参构造方法!
我的名字为:null,今年0岁了我是null生,有0贝利,长相null
我是有参构造1
我的名字为:路飞,今年18岁了我是男生,有1贝利,长相十分帅气
我是有参构造2
我的名字为:索隆,今年20岁了我是null生,有10贝利,长相更加帅气
我是有参构造3
我的名字为:null,今年100岁了我是null生,有0贝利,长相null
从上述代码可以看出,在创建对象的同时,我们可以利用构造方法的重载来进行自己想要的构造方式。
重载作为JAVA三大特性之一,具有十分广泛的应用。在JAVA自带的封装起来的类中有很多方法都利用了重载。
比如我们打开JAVA帮助文档。随便打开几个我们比较常用的类
除了这些,重载还会在整个编程生涯中占据着十分重要的角色。