构造方法:
- 构成:修饰词+方法名(参数列表){
方法
}
注:
- 没有返回值这一项。
- 方法名必须与当前的类名一致。
创建自己的构造方法
分类:
- 无参的构造方法:会将成员变量初始化成null或0或false等。
- 有参的构造方法:会将成员变量先初始化并进行赋值(通过传入的参数赋值)
构造方法的调用:
- 调用时候的构成:类名+()
- 作用:对对象的属性进行初始化,如果我们不自己创建构造方法,系统会调用默认的无参构造方法。
注:1. 一旦创建了自己的构造方法,就不会调用系统默认的无参构造方法
2. 多个构造方法直接是重载的关系
this关键字
- this :是一个关键字,是一种引用数据类型,代表的是当前的对象,保存的是当前对象的地址。
- 场景:想在当前类内部拿到当前对象的引用的时候使用this
- 作用:1.区分成员变量和局部变量
- 2.可以在构造方法中调用其他重载的构造方法,提高代码的复用性,简化代码。
关于this 的注意点
- 在作为方法的时候,只适用于构造方法。
- 不能自己调用自己——死循环
- 不能相互调用——死循环
- 在构造方法中调用其他重载的方法时,必须写在第一行
- 在静态方法中无法使用this
public class Demo05 {
public static void main(String[] args) {
Student stu = new Student();//构造方法--系统默认创建的构造方法
stu.name="bingbing";
Student stu1 = new Student("bingbing");
System.out.println(stu1.name);
}
}class Student{
String name;
int age;
int weight;
public void study() {
System.out.println("study");
}
//创建无参的构造方法
public Student() {
//this(); 自己调用自己会造成死循环
//在构造方法的内部会自动的进行属性的初始化
System.out.println("无参构造方法");
}
//创建有参的构造方法
//当成员变量与形参名字一致时,方法内部识别的是形参,依据的是就近原则
//就近原则 是从内存的角度考虑远近
public Student(String name) {
this.name = name;//给对象的属性完成赋值
System.out.println("有参的构造方法");
}
public Student(String name,int age) {
//通过this调用其他构造方法的时候必须放在当前方法的第一行
//System.out.println();
this(name);//调用有一个参数的构造方法
this.age = age;
System.out.println("有参的构造方法");
}
public Student(String name,int age,int weight) {
this(name,age);//代表在调用两个参数的构造方法
this.weight=weight;
System.out.println("有参的构造方法");
}
}