当前位置: 首页 > news >正文

java面向对象06:封装

封装

  • 该露的露,该藏的藏
    • 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
  • 封装(数据的隐藏)
    • 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
  • 属性私有,get/set
package com.oop;import com.oop.demo04.Student;
/*
1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统的可维护性增加了*/
//一个项目应该只存在一个main方法
public class Application {public static void main(String[] args) {Student s1=new Student();s1.setName("哈基米");System.out.println(s1.getName());s1.setAge(-1);System.out.println(s1.getAge());}
}
package com.oop.demo04;
//类    private:属性私有
public class Student {private String name;//名字private int id;//学号private char sex;//性别private int age;//提供一些可以操作这个属性的方法!//提供一些public的get、set方法//get获得这个数据public String getName() {return this.name;}//set给这个数据设置值public void setName(String name) {this.name = name;}//alt+insertpublic char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getAge() {return age;}public void setAge(int age) {if(age>120||age<0){this.age=3;}else{this.age = age;}}
}

在这里插入图片描述

相关文章:

  • cmd 终端输出乱码问题 |Visual Studio 控制台输出中文乱码解决
  • Day08【基于预训练模型分词器实现交互型文本匹配】
  • 考研数据结构之树与二叉树的应用:哈夫曼树、哈夫曼编码与并查集
  • JavaWeb开发 Servlet底层 从概念到HTTP请求 到web服务器再到servlet
  • ROS2 常用
  • How to run ERSEM
  • linux上安装vimplus 从零开始
  • 使用Python构建桌面图片浏览器
  • cursor如何回退一键回退多个文件的修改
  • Docker 安装 Elasticsearch 8.x
  • Java二叉树深度解析:结构、算法与应用实践指南
  • 【教程】检查RDMA网卡状态和测试带宽 | 附测试脚本
  • Java公平锁和非公平锁实现原理
  • 图论-BFS搜索图/树-最短路径问题的解决
  • 2025 cs144 Lab Checkpoint 2 小白超详细版
  • python 安装win32com.client库
  • ReportLab 导出 PDF(文档创建)
  • vue里provide作用:将一组全局方法注入到 Vue 应用的所有子组件中
  • 【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——USB测试 #USB HOST #USB 鼠标
  • 京东硬核挑战潜规则,外卖算法要变天?
  • 国新办发布《关于新冠疫情防控与病毒溯源的中方行动和立场》白皮书
  • 船只深夜撞上海上风机后沉没1死1失踪,调查报告公布
  • 保利发展去年净利润约50亿元,在手现金1342亿元
  • 赛力斯拟赴港上市:去年扭亏为盈净利59亿元,三年内实现百万销量目标
  • 北京朝阳涉住宅组团地块126亿元成交
  • 柳州警方通报临牌车撞倒行人:扣留涉事车辆,行人无生命危险