ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Day 28.数据安全的练习,就近原则和this指针

2026/8/9 14:39:01 拓冰建站 浏览量
Day 28.数据安全的练习,就近原则和this指针

今日
05‑数据安全练习(封装实操)
核心知识点📌
标准 Java 实体类标准格式:
私有成员变量
无参构造、全参构造
get、set 方法
重写 toString ()
set 方法业务校验示例:年龄不能小于 0、大于 150;性别限定合法值
06‑就近原则和 this 关键字
核心知识点📌
变量就近优先原则
当局部变量、成员变量名字一致时,方法内优先取用距离当前代码最近的局部变量,成员变量被屏蔽。
this 关键字四大用途
this.成员变量:强制指定访问当前对象的成员变量,打破就近原则;
this.成员方法():调用本类当中其他成员方法;
this(参数):重载调用本类其他构造方法,只能放在构造方法首行;
this代表当前正在创建 / 调用的对象地址。
内存原理:this 存储堆里面当前实例的地址。
明日
Java面向对象-构造方法,构造方法的注意事项
问题及解决方案
05‑数据安全练习(封装实操)
问题:校验逻辑只写在测试类,绕过校验依旧可以赋值
解决:合法性判断代码必须写进 setter 函数内部
问题:构造方法赋值绕过 set 方法校验
解决:构造方法内部调用 setXxx () 完成赋值,复用校验代码
public Person(int age){
setAge(age);
}
问题:打印对象地址哈希码,看不到属性信息
解决:重写 toString (),返回对象属性详情
06‑就近原则和 this 关键字
问题:给同名变量赋值之后成员变量数值始终不变
原因:程序根据就近原则一直操作局部变量,没有访问对象成员变量
解决:变量前添加 this.
public void setName(String name){
this.name = name;
}
问题:普通成员方法里面无法调用构造方法
原因:this(...)仅允许写在构造方法第一行
解决:构造方法之间互相调用,普通方法改用普通方法调用
问题:静态 static 方法里面使用 this 报错
原因:静态属于类,不属于实例对象,this 指代对象
解决:静态方法禁止使用 this 关键字