ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java开发基础篇SE中this关键字的含义与使用

2021-07-05 10:01:32  阅读:152  来源: 互联网

标签:Java name gender age 关键字 return public SE String


this关键字含义

1. this代表什么

this代表对象, 代表的是当前对象, this里保存的是对象的地址.

谁是当前对象? 比如方法调用

t1.say() 在这个方法执行时

执行以下代码 :

public String say() {

       return “姓名:” + name + “,年龄:” + age + “,性别:” + gender;

}

这段代码可以写成

public String say() {

       return “姓名:” + this.name + “,年龄:” + this.age + “,性别:” + this.gender;

}

效果是一样的, 当前的对象是哪个对象呢? 就是调用这个方法的对象, t1.say()中的t1就是当前对象,显然这个当前对象在变化, 因为t2.say()调用时,this就是指的是t2了

2.为什么使用this

this强调了使用当前对象, 有的时候属性如果和方法中的局部变量重名时, 为了区别必须使用this,在构造器重载时, 调用别的构造器也需要使用this. 两者的语法不一样

public class Teacher {      

       private String name;

       private int age = 30;

       private String gender = “女”;      

       public Teacher() { // 无参构造器

              this(“佟刚”, 35, “女”); // 调用其他构造器

       }    

       public Teacher(String name, int age, String gender) {

              this.name = name; // this表示对象, 右侧的name是形参, 是局部变量

              this.age = age;

              this.gender = gender;

       } 

       public void setName(String name) {

              this.name = name;

       }

       public String getName() {

              return this.name; // 加上this也可以, 但是没有必须, 它暗含了this

       }

       public void setAge(int age) {

              this.age = age;

       } 

       public int getAge() {

              return age;

       }  

       public void setGender(String gender) {

              this.gender = gender;

       }   

       public String getGender() {

              return gender;

       }      

       public String say() {

              return “姓名:” + this.name + “,年龄:” + this.age + “,性别:” + this.gender;

       }

}

3.使用this的优点

  1. 使用this可以提高代码的可读性, 强调要使用的是当前对象.
  2. 在方法中, 如果局部变量和属性重名, 必须使用this, 用以区分属性和局部变量, 并且这样局部变量的含义也更清晰.
  3. this(…)调用可以简化构造器调用, 并有利于维护. 如果有修改的需要, 只要修改被调用的构造器就可以了.

转载原文链接:http://www.atguigu.com/jsfx/11590.html

 

标签:Java,name,gender,age,关键字,return,public,SE,String
来源: https://www.cnblogs.com/xiaobaizaixianzhong/p/14971012.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有