this keyword details
2018-10-03 17:57:56来源:博客园 阅读 ()
学生类: package com.itheima_07; /* * 学生类 * * 起名字我们要求做到见名知意。 * 而我们现在的代码中的n和a就没有做到见名知意,所以我要改进。 * * 如果有局部变量名和成员变量名相同,在局部使用的时候,采用的是就近的原则。 * * 我们有没有办法把局部变量的name赋值给成员变量的name呢? * 有。 * * 什么办法呢? * 用this关键字就可以解决这个问题 * * this:代表所在类的对象引用 * 方法被哪个对象调用,this就代表那个对象 * * 使用场景: * 局部变量隐藏成员变量 */ public class Student { private String name; private int age; public void setName(String name) { //"林青霞" //name = name; this.name = name; } public String getName() { return name; } public void setAge(int age) { //age = age; this.age = age; } public int getAge() { return age; } }
package com.itheima_07; /* * 学生类的测试类 */ public class StudentDemo { public static void main(String[] args) { //创建对象 Student s = new Student(); System.out.println(s.getName()+"---"+s.getAge()); s.setName("林青霞"); s.setAge(28); System.out.println(s.getName()+"---"+s.getAge()); } }
首先setXxx和getXxx方法是为了数据的安全性,其次为了让名字做到见名知意,将a改成了age,n改成了name。输出结果相当于没有对name或者age赋值,这是因为在setName()和setAge()中的name和age都是局部变量,而不是让局部变量的值赋值给了这个类的成员变量,所以为了解决这个问题这里引入了this关键字就彻底解决了这个问题。this..name = name;因为this代表所在类的对象引用,所以this.name就是成员变量的name,而后面的name采用就近原则指的是局部变量的name。s来调用setName()方法,this就代表这个s。使用场景就是局部变量隐藏了成员变量。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 构造函数中的this()和super() 2020-06-10
- 技术大佬:我去,你竟然还不会用 this 关键字 2020-05-24
- springboot整合shiro 报 This application has no explicit 2020-05-04
- 构造方法及方法(重载)与this关键字的使用 2020-04-24
- 解决Maven打包时报错"The packaging for this proj 2020-04-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash