this关键字有三个用途: a.this调用本类属性 b.this调用本类方法 c.this表示当前对象
this调用本类属性
class Person{ private String name; private int age; public Person(String name,int age){ name = name ; age = age ; } public String getPersonInfo(){ return "姓名:" + name + ",年龄:"+age; } } public class Test{ public static void main(String[] args) { Person per = new Person("张三",20); System.out.println(per.getPersonInfo()); } } 以上代码通过构造方法对属性进行赋值,但是你会发现当参数与属性名相同时,并不能正确赋值,此时我们需要加上this关键字给对象属性赋值
this.name = name; this.age = age;//只要是在类中方法访问类中属性一定要加上this关键字 this调用本类方法 this调用本类方法分两种情况: 1、调用普通方法:this.方法名称(参数)
class Person{ private String name; private int age; public Person(String name,int age){ this.name = name ; this.age = age ; this.Print();//调用普通方法 } public void Print(){ System.out.println("这是一个普通方法"); } public String getPersonInfo(){ return "姓名:" + name + ",年龄:"+age; } } public class Test{ public static void main(String[] args) { Person per = new Person("张三",20); System.out.println(per.getPersonInfo()); } } 2、调用构造方法:this(参数) 调用构造方法 this(参数)
class Person{ private String name; private int age; public Person(){ System.out.println("产生新的Person对象"); } public Person(String name){ System.out.println("产生新的Person对象"); this.name = name ; } public Person(String name, int age){ System.out.println("产生新的Person对象"); this.name = name; this.age = age; } public String getPersonInfo(){ return "姓名:" + name + ",年龄:"+age; } } public class Test{ public static void main(String[] args) { Person per = new Person(); Person per1 = new Person("张三"); Person per2 = new Person("张三",23); System.out.println(per.getPersonInfo()); System.out.println(per1.getPersonInfo()); System.out.println(per2.getPersonInfo()); } } 对以上代码进行修改
public Person(){ System.out.println("产生新的Person对象"); } public Person(String name){ this(); this.name = name ; } public Person(String name, int age){ this(name); this.name = name; this.age = age; }
this调用构造方法时必须注意: a.this调用构造方法的语句必须放在构造方法的首行 b.使用this调用构造方法时,必须留有出口(不能成环)
this表示当前对象
class Person{ public void Print(){ System.out.println("普通方法"+this); } } public class Test{ public static void main(String[] args) { Person per1 = new Person(); System.out.println("主方法"+per1); per1.Print(); Person per2 = new Person(); System.out.println("主方法"+per2); per2.Print(); } }
只要对象调用了本类中的方法,this就表示当前执行的对象 --------------------- 作者:vm04580 来源:CSDN 原文:https://blog.csdn.net/ly52014/article/details/84497646 版权声明:本文为博主原创文章,转载请附上博文链接!
|