zoukankan      html  css  js  c++  java
  • Java基础之封装

    封装(Encapsulation)是java面向对象的三大特性,之前学java迷迷糊糊,一直也没弄清楚什么是封装以及为什么要封装,直到这次看书才有一种被点醒的感觉。

    java中的封装是针对某个类而言的,封装的基本原则就是:将你的实例变量标记为私有的(private),并提供共有的getters&setters方法来对成员变量进行存取控制。

    简而言之,Java的封装有两条准则

    1. 即将实例变量标记为private
    2. 将getters & setters 方法标记为public

    那么我们为什么要这样大费周折的标记实例变量进行封装呢?简单来说就是为了安全。

    如果不对实例变量进行封装(即标记为private),那么不管在任何地方,你都可以轻松的修改实例变量的值。

    而封装的意义就在于,强迫其他程序如果要修改成员变量就必须通过setters方法进行修改。相当于加了一个中间层。那么你可能会说,我通过setters方法一样可以在任何地方修改成员变量阿,那是因为setters方法是在类中由自己来定义的, 控制权在我自己手中,我可以通过setters方法来检查传过来的变量并判断是否可以执行。setters方法可以退回不合理的值,或者抛出Exception异常,或者进行取小数的运算等等。

    但是在现实中你会经常发现某些setters & getters 方法什么事情也没有做,只是做了简单的赋值操作。这的确在某种程度上增加了执行的负担, 但是由此带来的好处也是显而易见的, 那就是如果你事后改变想法不用去改变其他的程序。 这也是封装的意义所在,直接存取的效率是比不上这个好处的。

    所以今后写程序一定要记得进行正确的封装,its a good habbit!

  • 相关阅读:
    Windows自动更新所需要连接的网站列表
    DFX 9.303 for QQMusic 2010
    在VPC 2007 SP1中安装Ubuntu 10.04 desktop (完成)
    穷人把钱存入银行,实际上是补贴富人。
    清理Windows右下角图标
    阿里镜像pull 加速器
    k8s 安装flannel网络插件
    k8s pull.sh
    kubeadm1.10.00 安装k8s集群
    虚拟机vmware centos7 扩展磁盘空间
  • 原文地址:https://www.cnblogs.com/beyond-Acm/p/4363094.html
Copyright © 2011-2022 走看看