面向对象的三大特征:封装、继承、多态。封装在书面上来说,他无非就是set和get方法罢了。为什么要用到封装,比如买主机如果没有机箱只有内存条、CPU、主板等等那些零件买回到家,你还得一个个的去装那些零件要是不会装怎么办?就算把所有的零件全部装在一起了,要是不小心把水倒入机子了那就会坏掉,要是时间久了灰尘多了还会让机子死机。所以我们就得要有这个机箱要把里面的零件给保护起来这样才能不会不小心破坏掉里面的零件。

  我们在写一些类的时候,我们把属性全部写在外面没有把属性隐藏起来,就等于把一些信息写在了脸上别人就能够看出知道你的年龄体重爱好缺点还有一些信息都全部给别人看到了。

  我们不能把所有的东西都给显示出来,那样别人就知道了你的缺点是什么,所以说为什么要有封装,因为有了封装他能把重要的东西给保护隐藏起来,把有些可以让别人看到的东西给共享出来。

  封装是面向用户更简单(用户指的是程序员):把复杂的东西包装起来给用户使用更加的简单更加的方便。封装是面向属性更安全:把私有的属性都保护起来,不让别人修改内部的信息,不让别人去访问内部的信息。这才是为什么要有封装的目的。例题8.4图所示:

  图8.4

  有一个Dog类,有2个属性一个是name 一个是age然后new了对象,把name赋上了那么长的名字,那age赋值了那么大的年龄。但是狗有这么长的寿命吗?没有,但是他的赋值也很符合他的name属性和age属性。这就是公开的缺点,我们不能把所有的东西都给公开出来不能乱赋值。那么我们就要用封装,把这些name属性和age属性给封装起来给保护起来,不让他随意的去更改他。如图8.41所示:

  图8.41

  封装第一就是先把属性私有化private关键字就是私有的意思,他是不允许在外面调用,那么就要提供set方法然后把set方法的参数交给私有的属性,也就好比似拐了个弯。如果想得到name 那么就要使用get方法,return name; 把name返回出去。set是设置替换的意思,get是得到的意思。

  如果这个属性彻彻底底不让人家访问那么就拒绝提供set和get方法。如果这个属性仅仅只让人家得值那么就只需要提供get方法。如果这个属性只让人家设置值那么就只提供set方法。

  封装为什么要使用方法,原因是因为只有方法里面才可以写代码,所以要在方法里面设置值和得到值,只有他这里才可以写很多的代码可以做验证可以做判断判断他是否合要求,或者抛异常。例题8.42所示:

  图8.42

技术分享:www.kaige123.com

最新文章

  1. 使用jquery实现单选框、多选框取消选中状态
  2. Android常见控件— — —AlertDialog
  3. sql2000下如何新建并使用dbml
  4. CentOS下重新安装yum
  5. TypeScript-01-变量、基本类型和运算符
  6. 【WebGL】《WebGL编程指南》读书笔记——第6章
  7. 25.django Model
  8. 使用Navicat for MySQL把本地数据库上传到服务器
  9. leetcode 678. Valid Parenthesis String
  10. Android中广播接收者BroadcastReceiver详解
  11. (转)MySql中监视增删改查和查看日志记录
  12. ACL技术总结
  13. 解决iOS10下Meta设置user-scalable=no无效问题
  14. 图解ActiveMQ virtual topic
  15. ecmall 的一些方法说明
  16. LInux下的jdk环境置
  17. 一个不错的PHP二维数组排序函数简单易用存用
  18. 如何在Android Studio中添加注释模板信息?
  19. [AX]AX2012 R2 采购订单的“Request change”
  20. spring mvc--默认都使用了哪些bean

热门文章

  1. iOS10 UI教程视图的边界与视图的框架
  2. Swift3.0语言教程字符串与URL的数据转换与自由转换
  3. wpf Popup Win8.0 bug HorizontalOffset 弹出位置偏移
  4. kafka storm hbase性能
  5. java synchronized修饰普通方法,修饰静态方法,修饰代码块,修饰线程run方法 比较
  6. 卸载Photoshop
  7. git冲突解决
  8. iOS学习02C语言分支结构
  9. 降噪自动编码器(Denoising Autoencoder)
  10. jq对象转为dom对象:$(".div1")[0] dom对象转为jq对象:$(dom对象)