构造器无处不在,当我们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()使用类中隐藏的无参构造器。
五、拓展
this(参数列表) 代表对应的构造器。如下代码块:
this只有在构造中可以这种特殊用法this(),并且this(参数列表)必须出现在构造器第一行。
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;
}
}