1.构造方法(Constructor)
构造方法的作用就是用来创建对象的,每执行一次就会有一个对象个产生
1.1格式
限定词 方法名 (参数){方法体}
1.方法名必须与类名完全一致
2.没有返回值类型
1.2特点
1. 如果没有手动创建构造方法,编译器会自动创建一个无参构造。
2. 一旦创建一个构造方法,编译器就不再自动创建无参构造,一般我们会手动创建一个无参构造。
3. 每次创建对象时都会触发构造方法,具体触发那个构造根据给定的参数。
4. 构造方法分为,无参构造、含参构造及全参构造三种
5. 构造函数是被动触发的,不能像普通方法那样 主动调用
6. 一般使用快捷方式设置构造方法(Generate)
7. 全参构造里必须添加属性赋值语句,如果不写,即使传递了参数,也没有作用
1.3拓展对象属性的赋值方式
1. 对象名.属性名
2. 对象名.setter方法
3. new 构造方法();
2.代码块
2.1定义
被花括号{}包裹的代码的集合就是代码块
2.2构造代码块
1. 位置:类内,方法外部
2. 执行时间:每次创建对象时,并且优先于构造方法前
3. 作用:初始化实例域的值,将构造方法中相同的内容提取出来
2.3局部代码块
1. 位置:方法内部,或者代码块内部
2. 执行时间:当有局部代码块的方法或者代码块被调用时,对应的局部代码块才会被执行
3. 作用:控制变量的作用范围;
变量的作用域是遵循就近原则的,只在一个代码块内起作用,超过范围就不起作用了。
2.4执行顺序
- 每次创建对象时,构造方法都会被动触发,
- 每次创建对象时,构造代码块也会被动触发,且优先于构造方法执行。
- 调用普通方法前,一定要创建对象,只用创建了对象才能调用普通方法
- 局部代码块,只有在含有局部代码块的方法被调用时才会执行
3.this关键字
this关键字指代隐式参数(对象)
3.1this关键字指代成员变量
1.由于变量的就近原则,当方法中的局部变量和成员变量标志符一致时,通过this指代成员变量
3.2this调用构造方法
1.this();指代无参构造,
2.this(参数)调用对应参数的含参或全参构造
3.this关键字调用构造方法时,只能在构造方法中使用,并且只能放在构造方法的第一行
4.this关键字调用构造方法时,不能相互调用,否则会出现递归调用,进入死循环。