java——面向对象(三)构造方法+this关键字

构造方法:

  • 构成:修饰词+方法名(参数列表){

                  方法 

        }

      注:

  1. 没有返回值这一项。
  2. 方法名必须与当前的类名一致。

创建自己的构造方法

分类:

  • 无参的构造方法:会将成员变量初始化成null或0或false等。
  • 有参的构造方法:会将成员变量先初始化并进行赋值(通过传入的参数赋值)

构造方法的调用:

  • 调用时候的构成:类名+()
  • 作用:对对象的属性进行初始化,如果我们不自己创建构造方法,系统会调用默认的无参构造方法。

注:1. 一旦创建了自己的构造方法,就不会调用系统默认的无参构造方法

       2. 多个构造方法直接是重载的关系

this关键字

  • this :是一个关键字,是一种引用数据类型,代表的是当前的对象,保存的是当前对象的地址。
  • 场景:想在当前类内部拿到当前对象的引用的时候使用this
  • 作用:1.区分成员变量和局部变量 
  •            2.可以在构造方法中调用其他重载的构造方法,提高代码的复用性,简化代码。

关于this 的注意点

  1. 在作为方法的时候,只适用于构造方法。
  2. 不能自己调用自己——死循环
  3. 不能相互调用——死循环
  4. 在构造方法中调用其他重载的方法时,必须写在第一行
  5. 在静态方法中无法使用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("有参的构造方法");
    }
    
}

  

猜你喜欢

转载自blog.csdn.net/fang1025780636/article/details/81319032