封装
java三大特性之一封装,就是把内部数据“隐藏”起来,只暴露少量方法供外部使用,比如日常生活使用的电子产品,使用者只需要知道怎么去使用,不用去了解其内部构造。
高内聚,低耦合:内部数据不允许多部干涉,仅提供少量方法外部使用
对数据的隐藏,应禁止外部可直接访问对象内部数据,应通过接口间接访问
1.封装的步骤
-
使用
private
修饰需封装的成员变量 -
提供get/set方法供外部访问私有的内部成员
public class Student{ private String name; private int age; private int ID; public Student(){} public Student(String name,int age,int id){ this.name = name; this.age = age; this.ID = id; } //通过set方法让外部可以设置成员变量 public void setName(String name){this.name = name;} public void setAge(int age){this.age = age;} public void setID(int id){this.ID = id;} //通过get方法可以获取成员变量的值 public String getName(){return this.name;} public int getAge(){return this.age;} public int getID(){return this.ID;} }
在set方法中可以对数据合法性、完整性检测,让程序规避不合法的数据,如年龄应该在0~100之间,名字应该在32个字符内,学员id应该不超过20个数字等
2.作用和意义
- 成员私有化,保护了数据
- 提高程序的安全性、可维护性
- 统一用户的调用接口,便于调用者调用
由于成员私有化提供了访问接口,外部无法直接操作,保护了数据,提高程序的安全性,也对数据进行了合法的检测,确保了合法性;由于设罟了get/set方法使得代码更清晰,也提高了可维护性,方便外部调用
3.方法的重载
方法的重载可以提供方法调用的灵活性。
- 方法名必须相同
- 参数列表必须不同(参数的类型、个数、顺序的不同)
- 方法的返回值可以不同,也可以相同。
public void test(Strig str){}
public void test(int a){}
public void test(Strig str,double d){}
public void test(Strig str){}
public void test(Strig str,double d){}
public void test(double d,Strig str){}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!