面向对象的三大特征:封装、继承、多态。封装在书面上来说,他无非就是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

Java封装的更多相关文章

  1. 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)

    本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装.如果有需要可以自行进一步封装其它接口. 首先ICTCLAS2015的传送门(http://ictclas. ...

  2. java封装的方法

    java封装是由Java是面向对象程序设计语言的性质决定的,面向对象程序设计语言的三大特性之一就是封装.封装其实就是包装的意思,从专业的角度来看,就是把对象的所有组成部分组合在一起,保护私有属性. 如 ...

  3. Java - 24 Java 封装

    Java 封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外 ...

  4. Echarts 的 Java 封装类库 转自 https://my.oschina.net/flags/blog/316920

    转自: https://my.oschina.net/flags/blog/316920 Echarts 的 Java 封装类库:http://www.oschina.net/p/echarts-ja ...

  5. Java-Runoob-面向对象:Java 封装

    ylbtech-Java-Runoob-面向对象:Java 封装 1.返回顶部 1. Java 封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细 ...

  6. java封装的优点

    在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机 ...

  7. 乐字节Java|封装JavaBean、继承与权限修饰

    本文继续讲Java封装.上一篇:乐字节Java|GC垃圾回收机制.package和import语句 这次讲述JavaBean.继承与权限修饰 一. 封装javaBean 封装(Encapsulatio ...

  8. Java 封装 继承 多态

    Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法 ...

  9. Java“封装”的例子

    /*功能:Java"封装"的典型例子*/ public class Demo3_5{    public static void main(String args[]){      ...

  10. # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结

    095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

随机推荐

  1. css整理-04 基本视觉格式化

    基本框 假定每一个元素都会生成一个火多个矩形框,为元素框 元素框中心有一个内容区,周围有内边距,边距和外边距 内容的背景会应用到内边距,外边距是透明的,可以看到父元素的背景 内边距不能是负值,外边距可 ...

  2. MFC 程序以管理员权限运行

    首先,VS打开项目的属性 然后设置如图: 转载自:http://www.cnblogs.com/zzuhjf/archive/2012/09/12/2681548.html

  3. BZOJ4568 : [Scoi2016]幸运数字

    树的点分治,每次求出重心后,求出重心到每个点路径上的数的线性基. 对于每个询问,只需要暴力合并两个线性基即可. 时间复杂度$O(60n\log n+60^2q)$. #include<cstdi ...

  4. [R]R下as.Date()函数的坑

    问题描述: 在本地使用as.Date()函数从POSIXct类型中提取date时,出现了日期不一致的错误.导致处理数据时,总是出问题. 还好被领导发现数据有误,不然这个bug不知道还要潜伏多久.尽管如 ...

  5. CUDA程序设计(二)

    算法设计:直方图统计 直方图频数统计,也可以看成一个字典Hash计数.用处不是很多,但是涉及CUDA核心操作:全局内存.共享内存.原子函数. 1.1  基本串行算法 这只是一个C语言练习题. #def ...

  6. Codeforces Round #209 (Div. 2) B. Permutation

    解题思路: 如果序列a是单调递增的,则序列为1,2,..... 2n,则将给出的式子化简得Σ(a2i - a2i-1) = n 如果序列a是单调递减的,则序列为2n,.........2, 1,则将给 ...

  7. CDOJ 1437 谭松松的旅游计划 Label:倍增LCA && 最短路

    谭松松的旅游计划 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  ...

  8. 【BZOJ】2237: [NCPC2009]Flight Planning

    题意 \(n(1 \le n \le 2500)\)个点的树,求删掉一条边再加上一条边使得还是一棵树,且任意两点最大距离最小. 分析 考虑枚举删掉每一条边,我们只需要考虑如何加边容易求得新树的最大距离 ...

  9. 【HDU】1847 Good Luck in CET-4 Everybody!

    http://acm.hdu.edu.cn/showproblem.php?pid=1847 题意:同nim..不过只有一堆..每次取2的幂次..即1.2.4....等,n<=1000 #inc ...

  10. NOI模拟赛Day4

    看到成绩的时候我的内心** woc第一题写错了呵呵呵呵呵呵呵呵 人不能太浪,会遭报应的** ------------------------------------------------------ ...