Java this关键字_Java教程
内容摘要
this是Java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。在构造方法中使用this:this关键字出现在类的构造方法中时,代表使用该构造
文章正文
this是Java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。
在构造方法中使用this:
this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class People { int leg,hand; String name; People(String s) { name = s; this .init(); //可以省略this.,即写成init(); } void init() { leg = 2 ; hand = 2 ; System.out.println(name+ "有" +hand+ "只手" +1eg+ "条腿" ); } public static void main(String args[]) { People boshi = new People( "布什" ); } } |
在实例方法中使用this:
实例方法只能通过对象来调用,不能通过类名来调用。当this关键字出现在实例方法中时,就代表正在调用该方法的当前对象。
实例方法可以操作类的成员变量,当实例成员变量在实例方法中出现时,一般格式为:
1 | this .成员变量; |
当static成员变量在实例方法中出现时,一般格式为:
1 | 类名.成员变量; |
例如:
1 2 3 4 5 6 7 8 | class A { int x; static int y; void a() { this .x = 10 ; A.y = 20 ; } } |
该A类中的实例方法a中出现了this,this代表使用a的当前对象,所以“this.x”就表示当前对象的变量x,当对象调用方法a时,将10赋给该对象的变量x。当一个对象调用方法时,方法中的实例成员变量就是指分配给该对象的实例成员变量,而static变量和其他对象共享。因此,通常情况下,可以省略实例成员变量名字前面的“this.”以及static变量前面的“类名.”。
例如:
1 2 3 4 5 6 7 8 | class A { int x; static int y; void a() { x = 10 ; //省略this. y = 20 ; //省略类名. } } |
注意:当实例成员变量的名字和局部变量的名字相同时,成员变量前面的“this.”或“类名.”就不可以省略。
类的实例方法可以调用类的其他方法,对于实例方法调用的一般格式为:
1 | this .方法; |
对于类方法调用的一般格式为:
1 | 类名.方法; |
例如:
1 2 3 4 5 6 7 8 9 10 11 12 | class B { void b() { this .c(); B.d(); } void c() { System.out.println( "hi" ); } static void d() { System.out.println( "ok" ); } } |
该B类中的方法b中出现了this,this代表调用方法b的当前对象,所以方法b的方法体中this.c()就是当前对象调用方法c,也就是说,在某个对象调用方法b的过程中,又调用了方法c。由于这种逻辑关系非常明确,一个实例方法调用另-个方法时可以省略方法名字前面的“this.”或“类名.”。
例如:
1 2 3 4 5 6 7 8 9 10 11 12 | class B { void b() { c(); //省略this. d(); //省略类名. } void c() { System.out.println( "hi" ); } static void d() { System.out.println( "ok" ); } } |
注意:this不能出现在类方法中,这是因为类方法可以通过类名直接调用,这时可能还没有任何对象诞生。
代码注释
[!--zhushi--]