2、basic
3、this指针
4、construction
构造方法的作用
构造方法是创建对象的最后一步,是帮助我们给成员变量赋值的。这个方法不是我们自己调用,而是jvm自动调用的。【核心理解这一点就好了】
public class Demo {
public static void main(String[] args) {
Teacher t4 = new Teacher("语文", 30);//我想创建对象的过程中,我就直接赋值
t4.print();//成员方法print
/*System.out.println(t4.age);
System.out.println(t4.course);*/
/*//这么多构造方法,怎么知道调用哪一个?
Teacher t3 = new Teacher(16);
System.out.println(t3.age); //16
System.out.println(t3.course); //null
*/
}
}
class Teacher {
//定义成员变量
String course;//课程
int age;
//定义Teacher的构造方法
public Teacher(){
}
//定义有参的构造方法
public Teacher(String course, int age) {
//赋值,把方法传入的局部变量 赋值给当前对象的成员变量
//this.course代表当前对象的course成员变量
//后面的course是方法传入的参数 局部变量
/* this.course = course;
this.age = age;*/
//使用this关键字调用后面两个单参数的构造方法
//Call to 'this()' must be first statement in constructor body
this(course);
this.age = age;
//this(age); //error
}
//定义一个单参数的构造方法
public Teacher(String course){
//赋值,把方法传入的局部变量 赋值给当前对象的成员变量
this.course = course;
}
//定义一个单参数的构造方法
public Teacher(int age){
//赋值,把方法传入的局部变量 赋值给当前对象的成员变量
this.age = age;
}
//定义一个成员方法
public void print(){
System.out.println(this.course);
System.out.println(this.age);
}
}
构造方法(构造器)的一些重要细节
- 当一个类中没有显式的定义构造方法,这个时候JVM会默认提供一个无参构造方法
- 当一个类中显式的定义了有参构造方法,那么就不会提供默认无参构造方法了
Generate后直接选择生成多个构造方法 (mac系统没找见INSERT键)
定义了一个有参构造后,养成好习惯,必须要给这个类添加上无参构造
.
后面框架当中,有些框架会去自动调用无参构造创建对象
- 构造方法也是方法,既然是方法,可以方法重载
- 构造器当中也可以使用this关键字
1、可以调用当前类的别的构造方法
语法是this(参数列表)
特别注意:使用this调用别的构造方法,该this必须在构造方法的第一行,所以只能用一个this
2、可以使用this关键字调用当前对象的成员变量和成员方法
.
注意:最好的情况下,就让构造方法专注于创建对象,其他的事情不要管
- 构造方法不是普通方法,更不是成员方法,这个方法不是给程序员调用的,而是给jvm调用的。后面有反射,相当于可以间接使用