java構造器
阿新 • • 發佈:2018-12-21
構造器無處不在,當我們new className()建立物件時實際是類中一個隱藏的無參構造器在執行。
一、語法
public(private) 方法名(同類名) (資料型別 引數名.....){}
public class user (){ public String name; public int age; public user(String name){ this.name = name; } public user(String name,int age){ this.name = name; this.age = age; } } public class testUser(){ public static void main(String[] args){ User user1 = new User("姓名"); System.out.println(user1.name+user1.age); User user = new User("姓名",20); System.out.println(user.name+user.age); } }
二、特點
1、方法名與類名一致。
2、方法無返回值(包括void)。
3、引數可有可無。
4、可以有多個不同引數的構造器(方法過載)。
三、作用
建立(有參/無參)物件
四、注意
當class裡包含帶引數構造器時,new className()不能使用,必須寫一個無參構造器才可呼叫。
當class類不含帶引數構造器時,new className()使用類中隱藏的無參構造器。
五、拓展
public class user (){ public String name; public int age; public String sex; public user(String name){ this.name = name; } public user(String name,int age){ this(name);//代表上面一個引數的構造器 this.age = age; } public user(String name,int age,String sex){ this(name,age);//代表上面兩個引數的構造器 this.sex = sex; } }
this只有在構造中可以這種特殊用法this(),並且this(引數列表)必須出現在構造器第一行。