【Java编程基础】Java中this关键字的使用
1.第一种用法:通过this关键字去访问类的成员变量
2.第二种用法:通过this关键字调用成员方法
3.第三种用法:在其中一个构造方法中,使用this()的形式来调用其他的构造方法。
4.第四种用法:比较两个对象是否相等。
简单示例:
package cn.york.thisTest; public class Person { //属性 private String name; private int age; private String sex; //方法 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; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } //构造方法,初始化类的对象 public Person() { //this(name, age, sex);//注意事项3:同一个类的两个构造方法不能互相调用 System.out.println("我是无参构造方法!"); } public Person(String name,int age,String sex) { //3.在其中一个构造方法中,使用this()的形式来调用其他的构造方法。 this(); //1.通过this关键字去访问类的成员变量 this.name=name; this.age=age; this.sex = sex; //this(); //注意事项2:使用this()调用构造方法,必须放在该构造方法的第一行,而且只能调用一次。 System.out.println("我是有参构造方法!"); } public void Speak() { //this();//注意事项1:this()方式只能在构造方法中使用,不能在其他成员变量中去使用。 //2.通过this关键字调用成员方法 System.out.println("我的名字叫"+this.getName()); } public void printInfo() { //4.表示当前正在调用该方法的对象 System.out.println("Person类--》"+this); } public boolean compare(Person per){ //调用此方法时里面存在两个对象:当前对象、传入的对象 Person p1 = this ; // 当前的对象,就表示per1 Person p2 = per ; // 传递进来的对象,就表示per2 if(p1==p2){ // 判断是不是同一个对象,用地址比较 return true ; } // 之后分别判断每一个属性是否相等 if(p1.name.equals(p2.name)&&p1.age==p2.age&&p1.sex.equals(p2.sex)){ return true ; // 两个对象相等 }else{ return false ; // 两个对象不相等 } } public static void main(String arg[]) { Person p1= new Person(); Person p2 = new Person("YorkShare",35,"男"); Person p3 = new Person("YorkShare",35,"男"); //调用成员方法 p2.Speak(); //打印对象的信息 p1.printInfo(); p2.printInfo(); //比较两个对象 if(p2.compare(p3)) { System.out.println("两个对象相等!") ; } else { System.out.println("两个对象不相等!") ; } } }
运行结果:
注意:
(1)this()方式只能在构造方法中使用,不能在其他成员方法中去使用。
(2)使用this()调用构造方法,必须放在该构造方法的第一行,而且只能调用一次。
(3)同一个类的两个构造方法不能互相调用。
参考文章:
https://www.jb51.net/article/121103.htm
https://www.cnblogs.com/attentle/p/8745404.html
转载文章链接已标明,如有侵权请告知。文章仅作为知识记忆所用,如有错误,敬请指正。