今天来看看this关键字的使用。来看看代码吧。
package oop2;
public class this1 {
String name = "bill";
public void showName(String name) {
System.out.println(name);
}
public static void main(String[] args) {
this1 th = new this1();
th.showName("abc");
}
}
上面的代码,我们创建了类this1的一个对象的实例,传入我们的参数abc。很显然,输出的结果就是abc,这里就不多做解释了。
但是如果,我们想要输出成员变量name了,该怎么办了,此时就需要用到我们的this关键字了。
this关键字的用途,1.this关键字代表的就是类本身的对象,我调用我本身就是类.属性的方法。来看看代码。
在上面的代码里面,我们稍微的修改一下,如下所示.
package oop2;
public class this1 {
String name = "bill";
public void showName(String name) {
System.out.println(this.name);
}
public static void main(String[] args) {
this1 th = new this1();
th.showName("abc");
}
}
此时我们可以看到this关键字代表的就是指向类本身的对象。既然是本身,那么就是i调用本省的属性了,那么this.name所代表的就是成员属性了,当然就是
我们的这行语句的效果了。
String name = "bill";
this还可以通过无参数的构造方法来调用由参数的构造方法。还是来看看代码吧。
package oop2;
public class EggCook {
//定义类的成员变量.
int eggcount;
public EggCook() {
//没有参数的构造方法。
// TODO Auto-generated constructor stub
this(1);
}
//编写一个由参数的构造方法,代码如下.
public EggCook(int EggCount) {
this.eggcount=EggCount;
System.out.println("我的鸡蛋灌饼里面有"+EggCount+"个鸡蛋");
}
public static void main(String[] args) {
//创建类的实例对象.
EggCook t1=new EggCook(5);
EggCook t2=new EggCook();
}
}
可以看到,当我们传入参数的时候,调用的就是有参数的构造函数,那么输出的结果,就是我的鸡蛋灌饼里面有几个鸡蛋
但是当我们调用无参数的构造函数的时候,这里,我们住哟啊看看this关键字。此时this关键字同样的是调用了有参数的构造
方法,输出了我们正确的结果。
着就是this关键字的第二种用法,通过无参数的构造方法来调用有参数的构造方法.
上面的代码相当于EggCook(1),但是在java里面,我们一般不能这样写的。会把爆出语法错误.
这里还需要注意的就是在this(1)前面面不能写代码,因为初始化操作似最先被执行的,否则就会爆出语法错误。