关于构造器

construct:

1>构造器的作用:

创建对象

②初始化对象的属性

public class HelloWorld {
    public static void main(String[] args) {
        //创建类的对象:new + 构造器
        Person person = new Person();//Person()就是构造器
        Person person1 = new Person(2);//这里用的是Person类中的有参数的构造器  
    }
}    
class Person{
    int i ;
  //无参构造器
public Person() { super(); }
  //有参构造器
public Person(int i) { super(); this.i = i; } }

2>说明:

①如果类中没有显式的定义类的构造器的话,则系统会提供一个默认的无参构造器

②定义构造器的格式: 权限修饰符 类名(形参列表){}

③如果编写了有参构造器并且没有显式的写无参构造器,则不能调用无参构造器,否则会报错,如下图.[换句话:一旦我们显式的定义了类的构造器之后,系统就不在提供默认的空参构造器]

④一个类中定义的多个构造器,彼此构成重载

⑤一个类中至少会有一个构造器.

3.关于属性赋值的先后顺序

/*
 * 总结:属性赋值的先后顺序
 * ①默认初始化
 * ②显示初始化
 * ③构造器中赋值
 * ④通过"对象.方法"或"对象.属性"的方式赋值
 * 
 * 以上操作的顺序为:1->2->3->4
 */
public class HelloWorld {
    public static void main(String[] args) { 
        User user = new User();
        System.out.println(user.age);
        System.out.println(user.id);

        User user2 = new User(4);
        System.out.println(user2.id);
        user2.setId(55);
        System.out.println("setId以后: "+user2.id);
        
    }
}   
class User{
    
    //默认初始化
     int age ;
    //显示初始化
     int id = 2;
     
     public User() {    
     }
     //构造器赋值
     public User(int i) {
         id = i;
     }
     public void setId(int id) {
         id = id;
     }   
     
}

 

posted @ 2021-07-22 22:44  哩个啷个波  阅读(88)  评论(0)    收藏  举报