Day 22 封装
概念
封装就好比去银行办业务,只需要知道怎么存钱怎么取钱,并不需要知道他们内部是怎么运行的。
在设计程序时,追求·高内聚,低耦合。一个类中,将属性封装好,留出接口方便别人调用。在进行方法调用的时候,直接用预留的接口就好。
封装多用于属性,而不是方法。
alt + insert可以快速设置封装
封装的意义
- 提高程序的安全性,保护数据
- 隐藏代码的细节
- 统一接口
- 系统可维护性增加
代码(属性私有,get/set)
Student类
package com.oop.demo04;
public class Student {
//属性私有
private String name;//名字
private int id;//学号
private char sex;//性别
private int age;//年龄
//提供一些可以操作这个属性的方法!(接口)
//get 获得这个数据 提供一个公共的方法提取private的数据
public String getName(){
return this.name;
}
//set 给这个数据设置值
public void setName(String name){
this.name=name;
}
public int getAge() {
return age;
}
//封装时注意数据合法性。比如年龄,正常人的年龄在0-120之间,因此这里加入if 判断,如果数据不合法,年龄显示只有三岁
public void setAge(int age) {
if(age>120|| age<0){ //不合法
this.age=3;
}else {
this.age = age;
}
}
}
Aplication 类
package com.oop;
import com.oop.demo04.Student;
public class Application {
public static void main(String[] args) {
//new 一个对象方便调用Student类里的东西
Student s1 = new Student();
//这个使用封装预留的接口
s1.setName("jack");
//通过Student中的封装的属性来传递数据
System.out.println(s1.getName());// jack
s1.setAge(-1); // 不合法
System.out.println(s1.getAge());// 3
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术