当利用构造方法初始化赋值的时候,如果有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帮助文档。随便打开几个我们比较常用的类
除了这些,重载还会在整个编程生涯中占据着十分重要的角色。