java封装
封装
封装(数据隐藏):通常应禁止直接访问一个对象中的数据的实际表示,而应通过操作接口来访问
(主要对属性进行封装)
程序应该追求低耦合,高内聚,
低耦合:仅暴露少量的方法给外部使用;
高内聚:类的内部数据操作细节自己完成。
属性私有,get/set
package com.yuanyu.Oop;
public class Student {
private String name; //属性私有
public int id;
private char sex;
private int age;
/*
提供一些可以操作这些属性的方法:set、get
get:获得这个数据
set:给这个数据设置值
*/
public String getName() { //set/get
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age>120||age<0){ //不合法数据
this.age=-1;
}else {
this.age = age;
}
}
}
package com.yuanyu.Oop;
public class Application {
public static void main(String[] args) {
Student s1=new Student();
//s1.name="Mike"; //private修饰无法直接调用
s1.id=21; //public修饰可以直接调用
s1.setName("yuanyu");
System.out.println(s1.getName()); //yuanyu
s1.setAge(999); //该数据不合法,可以在set方法中使用条件语句来避免
System.out.println(s1.getAge()); //-1
s1.setAge(21);
System.out.println(s1.getAge()); //21
}
}
封装的意义:
- 提高程序安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 提高系统的可维护性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现