一、构造器 constructor的作用:创建对象,初始化对象的属性;
1.如果没有显示定义构造器的话,则系统默认提供一个空参的构造器,一旦显示定义了类的构造器,则系统就不再提供空参的构造器。权限同类的权限
2.定义构造器格式: 权限修饰符 + 类名 (参数列表){}
3.一个类中,定义多个构造器,彼此构成重载;
4.一个类中至少会有一个构造器
例子如下代码 Person1中构造器;
二、JavaBean:类是公共的,有属性且有对应的get set方法,有一个空参构造器,是一种java语言写成的可重用的组件;是一种规范,表达实体和信息的规范,便于封装重用;
如下例子Person1就是一个JavaBean;
三、 this关键字的使用:
1.this 可以用来修饰:属性,方法、构造器;
2.this修饰属性和方法:this理解为当前对象 或者 当前正在创建的对象(构造器的情况);
在类的方法中,我们可以使用 “this.属性”,“this.方法”的方式调用当前对象的属性和方法;
特殊情况下,若果方法的形参 和类的属性重名了,则必须显示使用 “this.属性”,表名此变量是属性,不是形参
3.this调用构造器
a.我们在类的构造器中,可以显示使用“this(形参列表)”的方式调用本类中指定的构造器
b.构造器不能通过“this(形参列表)”方式自己调自己
c.如果一个类中有n个构造器,则最多有n-1构造器使用了 “this(形参列表)”
d.规定:“this(形参列表)”必须在当前构造器的首行,所以构造器内部也只能有一个“this(形参列表)”
如下例子的this.name = name;this 指向当前对象的name = 形参;
1 public class Day10This16 { 2 3 public static void main(String[] args) { 4 Person1 person = new Person1(); 5 person.setAge(1); 6 System.out.println(person.getAge()); 7 Person1 person1 = new Person1("Jerry",1); 8 } 9 } 10 class Person1{ 11 private String name; 12 private int age; 13 public String getName() { 14 return name; 15 } 16 public void setName(String name) { 17 this.name = name; 18 } 19 public int getAge() { 20 return age; 21 } 22 public void setAge(int age) { 23 this.age = age; 24 } 25 26 public void eat() { 27 System.out.println("人吃饭。。。。"); 28 study(); 29 } 30 31 public void study() { 32 System.out.println("学习。。。"); 33 } 34 public Person1(String name, int age) { 35 //super(); 36 this(age); 37 this.name = name; 38 //this.age = age; //等同于 this("Tome"); 39 } 40 public Person1() { 41 //super(); 42 } 43 public Person1(String name) { 44 this();//调用当前的空参构造器 45 //super(); 46 this.name = name; 47 48 } 49 public Person1(int age) { 50 //super(); 51 this.age = age; 52 } 96 }
补充:
属性赋值:
1.默认初始化值;
2.显示赋值:如 String name = "Tom";
3.构造器赋值;
4.通过 “对象.方法” (set方法) “对象.属性”来赋值
执行先后顺序 ,1——》2》3》4