java中的this关键字是什么意思
内容摘要
什么是this?this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。用法如下:用"this.成员变量名称"和重名的局部变量区分开来;用"this.成员方法名"访问成员方
文章正文
什么是this?
this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
用法如下:
用"this.成员变量名称"和重名的局部变量区分开来;
用"this.成员方法名"访问成员方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class Person{ private String name; //成员变量 private int age; Person(){} Person(String name){ //局部变量 this.name=name; //1.用"this.成员变量名称"和重名的局部变量区分开来 } Person(String name,int age){ this(name); this.age=age; } String getInfo(){ //成员方法 return "姓名:" + name + " 年龄:" + age; } void print (){ System.out.println(this.getInfo()); //2.用"this.成员方法名"访问成员方法。 System.out.println(getInfo()); //这种情况this关键字一般不写,让编译器自动添加。 } } public class Test0505{ public static void main(String[] args){ Person p= new Person( "张三" ,33); p. print (); } } |
this()访问构造方法必须放在构造方法的第一行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class Person{ private String name; private int age; Person(){} Person(String name){ //不含this()的构造方法 this.name=name; } Person(String name,int age){ //在构造方法内调用另一个构造方法 this(name); //3."this();"访问构造方法必须放在构造方法的第一行 this.age=age; } String getInfo(){ return "姓名:" + name + " 年龄:" + age; } void print (){ System.out.println(this.getInfo()); } } public class Test0505{ public static void main(String[] args){ Person p= new Person( "张三" ,33); p. print (); } } |
返回对当前对象的引用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Leaf{ private int i=0; Leaf increment(){ i++; return this; //4.返回对当前对象的引用。 } void print (){ System.out.println( "i=" +i); } } public class Test0505{ public static void main(String[] args){ Leaf x= new Leaf(); x.increment().increment().increment(). print (); } } |
将对当前对象的引用作为参数传递给其他方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class Person{ void eat(Apple apple){ Apple peeled=apple.getPeeled(); System.out.println(peeled); } } class Apple{ Apple getPeeled(){ System.out.println(this); //输出对当前对象的引用。 return Peeler.peel(this); //5.将对当前对象的引用作为参数传递给其他方法。 } } class Peeler{ static Apple peel(Apple apple){ return apple; } } public class Test0505{ public static void main(String[] args){ Apple a= new Apple(); System.out.println(a); new Person().eat(a); } } |
推荐教程:Java教程
代码注释
[!--zhushi--]