博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
this keyword details
阅读量:6333 次
发布时间:2019-06-22

本文共 1358 字,大约阅读时间需要 4 分钟。

学生类: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。使用场景就是局部变量隐藏了成员变量。

转载于:https://www.cnblogs.com/lzp123456-/p/9739674.html

你可能感兴趣的文章
mysql [ERROR] Can't create IP socket: Permission denied
查看>>
PBRT笔记(4)——颜色和辐射度
查看>>
CustomView的手势缩放总结
查看>>
linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
查看>>
CentOS yum安装mysql
查看>>
OceanBase笔记1:代码规范
查看>>
[Algorithms] Longest Increasing Subsequence
查看>>
MAC下GitHub命令操作
查看>>
springboot之filter/listener/servlet
查看>>
Thinkphp --- 去掉index.php
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构
查看>>
oracle故障解决
查看>>
tcpdump
查看>>
数据库内存结构
查看>>
利用Shell开发跳板机功能脚本案例
查看>>
51CTO的技术门诊谈OSSIM
查看>>
六年心路成长 —— 做自己
查看>>
Unix整理笔记——高级命令sed和awk——里程碑M10
查看>>
Linux系统详解 第六篇:系统的启动、登录、注销与开关机
查看>>
ios电话拨打进行监听电话状态
查看>>