您的位置:首页 > 编程语言 > Java开发

Java this关键字简单理解

2015-12-28 13:17 459 查看
首先你要知道在一个类中无论是写入方法还是属性等,肯定是要被外界引用到的(private 等被保护的除外),要是想在类的外部调用方法或是属性,需要一个引用类型指向一个new的对象,如HelloWorld h=new HelloWorld();中的“h”,但是如果你要想再一个类的内部使用该类的方法、属性、构造器等,java提供了一个简单的方法--this关键字。写入一个例子看了就很好理解了。

public class Test01 {

public String str = "test01";

public String getStr() {
return str;
}

public void setStr(String str) {
// System.out.println(this);
this.str = str;
}
public void getInfo(){
System.out.println(this.str);
}

}
</span>
<span style="font-size:14px;">public class Test01_main {
public static void main(String [] args){
Test01 t=new Test01();

//在Test01类的内部,调用Test01类中的str属性。
t.getInfo();

//在Test01_main类的中,调用Test01类中的str属性。
System.out.println(t.str);

//对 Test01中的属性进行更改
t.setStr("new test01");

//通过Test01类中查看属性
t.getInfo();

//通过外部方法查看s属性
System.out.println(t.str);
}
}</span>


结果:

test01
test01
new test01
new test01


从上面例子可以看出this 的作用是在类的内部调用本身类的方法或属性。
刚开始是我对于this定义“代表调用该方法对象的引用”一直不理解是怎么回事,看下面小例子

<span style="font-size:14px;">public class Test02 {
public void getInfo(){
System.out.println(this);
}
public static void main(String []args){
Test02 t=new Test02();
t.getInfo();
System.out.println(t);
}
}
</span>
结果:

<span style="font-size:14px;">com.lava.test.Test02@368102c8
com.lava.test.Test02@368102c8</span>
不多说从结果看出this和引用类型t的打印结果一样。解释了上面所说的一句话。

其实this关健字很好理解,别人的解释也已经很到位了。但是需要注意一下几点:

1、this一般是在方法体中使用。

2、它实现了在类的内部调用该类的方法或属性。

3、在一个构造函数中调用本身的另一个构造函数。

4、当类没有被new是,并不知道this指向的是哪个对象,所以不能与static一起使用,因为被static修饰的方法是随类生成时生成的,不能被new。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java this