java中的this关键字
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;
}
}
最后更新:2017-04-03 07:57:18
上一篇:
iBATIS批量操作
下一篇:
java关键字——strictfp
连载:面向对象葵花宝典:思想、技巧与实践(2) - 面向对象语言发展历史
Oracle 11g 在使用时应该启动哪些服务?
Spring tool suite编译不通过:Access restriction: The type XXX is not accessible
统一语言
产品经理(PM)常用原型图设计工具
快速迭代的互联网研发模式下测试如何突破?
ALICloudDB for PostgreSQL 试用报告 - 3 水平分库 vs 单机 性能
阿里云SLB的特点
邬迪:乌云完成了使命 | 乌云回忆录(一)
WCF技术剖析之三十三:你是否了解WCF事务框架体系内部的工作机制?[上篇]