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的构造函数。
浙公网安备 33010602011771号