java中的this关键字

2014-11-24 07:37:27 · 作者: · 浏览: 0

java提供了this关键字,this关键字表示该类的对象的默认引用。

this关键字最大的作用是,让类的一个方法,访问该类的另一个方法或者属性。


先看一个不好的例子:

public class Baby
{
public void wakeUp()
{
System.out.println("宝宝醒啦");
}

public void eat()
{
Baby baby = new Baby();
baby.wakeUp();
System.out.println("吃东西");
}
}

这样不符合逻辑。这就相当于本对象的eat方法,需要调用另一个对象的wakeUp方法。


我们看这个例子:

public class Baby
{
public void wakeUp()
{
System.out.println("宝宝醒啦");
}

public void eat()
{
this.wakeUp();
System.out.println("吃东西");
}
}

这样就符合逻辑了。自己的eat方法,还需要自己的一个wakeUp方法。


java允许同一个对象的方法直接调用该对象的属性或者方法,所以this可以省略。

public class Baby
{
public void wakeUp()
{
System.out.println("宝宝醒啦");
}

public void eat()
{
wakeUp();
System.out.println("吃东西");
}
}

而在静态方法中无法使用this,因为类可以直接调用该方法,所以this无法指向合适的对象。


public class Baby
{
public void wakeUp()
{
System.out.println("宝宝醒啦");
}

public static void eat()
{
// 报错
wakeUp();
System.out.println("吃东西");
}
}

我们再来看一个最常用的例子,就是在构造方法中使用this

public class Baby
{
private String name;
private int age;

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

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public int getAge()
{
return age;
}

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

摘自 IT胖子的专栏