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

Java 封装

文章目录

  • 封装
      • 一.什么是封装
      • 二.为什么要封装
      • 三.实例演示
        • 1.
        • 2.

封装

一.什么是封装

  • 该露的露,该藏的藏
  • 程序设计要追求"高内聚,低耦合"。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉。低耦合:仅暴露少量的方法个外部使用(比如银行取钱机的内部,和用户使用的外部操作)
  • 封装(数据的隐藏)
  • 通常,应禁止直接访问一个对象中数据的实际表现,而应通过操作接口来访问,这称为信息隐藏。
  • 记住这句话就够了:属性私有,get/set (数据私有,get/set 去操作数据)

二.为什么要封装

1.提高程序的安全性,保护数据
2.隐藏代买的实现细节
3.统一接口
4.系统可维护性加强

三.实例演示

请添加图片描述

1.

public class Demo12 {
    private String name;
    private int age;

    //封装数据
    //获取数据
    public String getName() {
        return name;
    }

    //设置数据
    public void setName(String name) {
        this.name = name;
    }


}

/*
1.提高程序的安全性,保护数据
2.隐藏代买的实现细节
3.统一接口
4.系统可维护性加强
 */
public class Application {
    public static void main(String[] args) {
        Demo12 demo12 = new Demo12();

        demo12.setName("chouzhenjie");

        System.out.println(demo12.getName());
    }
}

在这里插入图片描述

2.

public class Demo12 {
    private String name;
    private int age;

    //封装数据
    //获取数据


    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age>120 || age<0){
            this.age=0;   //不合法 年龄默认为0
        }
        else{
            this.age=age;
        }
    }
}

/*
1.提高程序的安全性,保护数据
2.隐藏代买的实现细节
3.统一接口
4.系统可维护性加强
 */
public class Application {
    public static void main(String[] args) {
        Demo12 demo12 = new Demo12();

        demo12.setAge(23);

        System.out.println(demo12.getAge());
    }
}

请添加图片描述

笔记思路来源狂神说JAVA

相关文章:

  • Java继承
  • java中的super和this
  • Java抽象类
  • Java案例用户登录
  • Java案例统计字符次数
  • JAVA字符串反转
  • 工欲善其事,必先利其器--tmux
  • 工欲善其事,必先利其器--vim
  • 聊聊Session、Cookie、Token、JWT
  • Django 数据库查询优化
  • pycharm创建vue项目
  • Vue的路由配置,模块引入
  • CSS学习:设置全局背景图
  • css学习:透明的设置
  • element学习:form表单的校验
  • Django 博客开发教程 8 - 博客文章详情页
  • EOS是什么
  • es的写入过程
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Octave 入门
  • PermissionScope Swift4 兼容问题
  • Quartz初级教程
  • Vue官网教程学习过程中值得记录的一些事情
  • 半理解系列--Promise的进化史
  • 规范化安全开发 KOA 手脚架
  • 离散点最小(凸)包围边界查找
  • 配置 PM2 实现代码自动发布
  • 数据结构java版之冒泡排序及优化
  • 一文看透浏览器架构
  • UI设计初学者应该如何入门?
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • # 数论-逆元
  • #### go map 底层结构 ####
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (javascript)再说document.body.scrollTop的使用问题
  • (超详细)语音信号处理之特征提取
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (轉)JSON.stringify 语法实例讲解
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net framework4与其client profile版本的区别
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET 动态调用WebService + WSE + UsernameToken
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .net访问oracle数据库性能问题
  • .net经典笔试题
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET与 java通用的3DES加密解密方法
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [datastore@cyberfear.com].Elbie、[thekeyishere@cock.li].Elbie勒索病毒数据怎么处理|数据解密恢复