java里面this关键字的理解

今天来看看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)前面面不能写代码,因为初始化操作似最先被执行的,否则就会爆出语法错误。

 

 

你可能感兴趣的:(java基础,Java面向对象基础)