this关键字
思考:如果同一个类的两个对象调用类的同一个方法,如何才能让这两个对象都能调用此方法。为了能用简便、面向对象的语法编写代码——即“发送消息给对象”,编译器幕后将所操作对象的引用作为第一个参数传递给被调用方法。
1. 作用:
1.1 表示当前对象的引用: (this的用法和其它对象引用并没有不同)
this.本类中的方法:可以调用本类中的方法。(在本类中也可以省略this关键字,编译器会自动帮助添加。)
this.本类的域名:可以表示当前对象的该域。
注意:当只有明确需要指出当前对象的引用时才需要使用this关键字。eg:当需要返回当前对象的引用时,可以使用return this
public class Leaf { int i = 0 ; Leaf increment(){ i++ ; return this ; } public static void main(String[] args) { Leaf l = new Leaf() ; l.increment().increment().increment() ; System.out.println(l.i); } }
1.2 表示构造器:必须放在最起始的位置,否则编译会报错。除构造器外,编译器禁止在其他任何方法中调用构造器。
static :
static方法就是没有this的方法,在static方法中不能调用非static方法,反过来是可以的。由于不存在this,所以不是通过“向对象发送消息”的方式来完成的。