zoukankan      html  css  js  c++  java
  • 面向对象——封装(隐藏)

    类的结构:内部为私有的实现细节,外部为公共API

    “公共API”是指对象的对外接口,由对象的方法构成,其他对象通过这些接口向对象发消息,请求对象的服务。对象的变量与实现构成了对象的内核,对象的方法包裹着对象的内核,使对象的内核能够对程序中其他对象隐藏使用对象的方法将对象的变量与实现保护起来,就称为封装。对象中的数据封装同时也实现了对象的数据隐藏。这种结构称为理想结构,实际中对象可能需要暴露一些变量或隐藏它的一些方法。数据隐藏是通过对象成员的访问控制实现的。四种访问控制。

    封装的意义:

      模块化(对象的代码能够形成独立的整体,单独进行实现与维护,并使对象能够在系统内方便地进行传递)

      保证对象数据的一致性并易于维护(接口通信,变量和实现隐藏,使得对象的私有信息被有效保护起来,防止外界对对象私有信息的修改,保证一致性。开发者可以随时修改数据和方法,不影响调用对象接口的其他程序)

    封装可以实现以下目的:

    ① 隐藏类的实现细节

    ② 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问

    ③ 进行数据检查,有利于保证对象信息的完整性

    ④ 便于修改,提高代码可维护性

    封装的含义:该隐藏的隐藏,该暴露的暴露

    常量和static可以public,一般成员变量私有。

    使用访问控制符,实现封装:

    封装的要点:

    ①类的属性的处理

    • 一般使用private(除非本属性确定会让子类继承)
    • 提供相应的get/set方法来访问相关属性,这些方法通常是public,从而提供对属性的读取操作(boolean变量的get方法是用 is 开头)

    ②一些只用于本类的辅助性方法可以用private,希望其他类调用的方法用public

  • 相关阅读:
    一个基于C++11的定时器队列(timerfd,poll实现)
    Mysql学习(一)添加一个新的用户并用golang操作Mysql
    epoll使用详解
    基于C++11实现线程池的工作原理
    ubuntu18.04初始化配置
    muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor
    muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
    muduo网络库学习笔记(三)TimerQueue定时器队列
    关于 JavaScript 的 null 和 undefined,判断 null 的真实类型
    vue 双向数据绑定原理
  • 原文地址:https://www.cnblogs.com/datamining-bio/p/13129425.html
Copyright © 2011-2022 走看看