唐僧喜欢小龙女

导航

this关键字的理解

1、this的定义

表示当前类的对象,或者正在为当前类马上创建好的对象(类构造器中使用this)

当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。

因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。

2、修饰属性

全局变量和局部变量一样的时候,全局变量前加this

package com.alibaba.gts.sofa.rpc.provider.domain;

public class Student {

    private String name;
    private int age;
    private char sex;

    public String getName() {
        return name;
    }

    //全局变量和局部变量一样的时候,全局变量前加this
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }
}

 3、this 修饰方法

   public void eat(){
        System.out.println("人吃饭and"+this.study());
    }

    public String study(){
        System.out.println("人学习");
        return "人学习";
    }

 

4、this修饰构造器

意思是可以通过this来调用别的构造器

    public Student(String name) {
        this.name = name;
    }

    public Student(String name, int age) {
       this(name);
        this.age = age;
    }

  

5、把this作为参数传递

public class A{

public A(){
    new B(this).print();
}

public void print(){
      System.out.println("From A!");
 }

public static void main(String[] args) {
      new A();
   }
}
 
public class B{
   A a;
   public B(A a){
      this.a = a;
   }
 
   public void print(){
      a.print();
      System.out.println("From B!");
   }
}

 

运行结果:From A!

                   From B!

在这个例子中,对象A的构造函数中,用new B(this)把对象A自己作为参数传递给了对象B的构造函数。

   

 

 

posted on 2021-04-30 15:09  与时具进&不忘初心  阅读(80)  评论(0编辑  收藏  举报