Java基础:封装

1|0Java基础:封装


1|1封装

  • 封装:指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法

  • 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问

  • 该露的露,该藏的藏

    • 我们程序设计要追求“高内聚,低耦合
    • 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉
    • 低耦合:仅暴露少量的方法给外部使用
  • 封装(数据的隐藏)

    • 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏
  • 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段

  • 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性

  • 特点:

    • 属性私有,通过 gettersetter 访问修改

    • 提高程序的安全性,保护数据

    • 隐藏代码的实现细节

    • 统一接口

    • 系统可维护增加

  • 示例

    public class Application { public static void main(String[] args) { Student s1 = new Student(); s1.setName("李华"); s1.setGender('男'); s1.setAge(999);//不合法的 s1.setId(10010); System.out.println(s1.getName() + "\t" + s1.getGender() + "\t" + s1.getAge() + "\t" + s1.getId()); } }
    //类 private:私有 public class Student { //属性私有 private filed,只有本类才能访问,其他类都访问不了 private String name;//名字 private int id;//学号 private char gender;//性别 private int age;//年龄 //提供一些可以操作这个属性的方法 //提供一些public的get、set方法 //get:获得这个数据 public String getName() { return this.name; } //set:给这个数据设置值 public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { if (age>120 || age<0) {//不合法 this.age = 3; }else { this.age = age; } } }

    输出

    李华 男 3 10010

    在示例中 public 方法是外部类访问该类成员变量的入口

    通常情况下,这些方法被称为 gettersetter 方法因此,任何要访问类中私有成员变量的类都要通过这些 gettersetter 方法


__EOF__

本文作者userName
本文链接https://www.cnblogs.com/dt746294093/p/14638084.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   D..T  阅读(88)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示