关于构造器
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; } }