1. 程式人生 > >java構造器

java構造器

構造器無處不在,當我們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(引數列表)必須出現在構造器第一行。