黑马程序员【java基础】面向对象-类的封装

黑马程序员【java基础】面向对象-类的封装

ID:34504536

大小:149.56 KB

页数:4页

时间:2019-03-07

黑马程序员【java基础】面向对象-类的封装_第1页
黑马程序员【java基础】面向对象-类的封装_第2页
黑马程序员【java基础】面向对象-类的封装_第3页
黑马程序员【java基础】面向对象-类的封装_第4页
资源描述:

《黑马程序员【java基础】面向对象-类的封装》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。封装能为软件系统带来以下优点:1:便于正确方便的理解和使用系统,防止使用者错误修改系统的属性。以供电系统为例,过去房屋隔壁的上方都是电线,现在的房屋电线都看不见了,在墙壁上只露出一些电源插口,为啥要把电线隐藏起来呢?理由很简单,暴露在外面的电线既不安全也不美观。再比如电视剧系统,尽管本身的实现很复杂,但用户很方便,电视剧的实现细节都被藏在壳子里面,没有必要向用户公开。2:有助于建立各个系统之间的松耦合关系,提供系统的独立性。当一个系统的实现发送变化时,只要它的接口不变,就不会影响其他的系统

2、。3:提供软件的可重用性,每个系统都是一个相对独立的整体,可以在多种环境下得到重用。例如,干电池就是独立的,它可以在手电筒,相机中都能发挥作用。4:降低构建大型系统的风险,即使整个系统不成功,个别独立的系统可能仍然有价值。例如相机坏了,里面的电池还是有用的,还可以安装到手电筒中。在java面向对象编程语言中,主要是通过访问控制机制来进行封装,这种机制能控制对象的属性和方法的可访问性。在Java中提供了以下四种访问控制级别。lpublic:对外公开,访问级别最高lprotected:只对同一个包中的类或者子类公开l默认:只对同一个包中的类公开

3、。lprivate:不对外公开,只能在对象内部访问,访问级别最低。灵活运用这四种访问级别可以有效的控制对象的封装程度,那么到底哪些对象的属性和法应该公开,哪些应该隐藏呢?这必须具体分析,下面是封装的两个大致原则:1:把尽可能多的东西藏起来,对外提供简捷的接口  系统的封装度越高,那么它的独立性就越高,而且使用起来越方便,例如半自动洗衣机HalfAutoWasher和全自动洗衣机AutoWasher就是个明显的例子。以下程序演示的是半自动洗衣机的过程。HalfAutoWasher washer=new HalfAutoWasher();//开

4、始洗衣服washer.on();//开机//洗涤washer.inputWater();//放水washer.setTimer(5);//定时5分钟washer.wash();//洗涤washer.dischargeWater();//排水//第一次清洗washer.inputWater();//放水washer.setTime(5);//定时5分钟washer.wash();//洗涤washer.dischargeWater();//排水//第二次清洗washer.inputWater();//放水washer.setTime(5);//

5、定时5分钟washer.wash();//洗涤washer.dischargeWater();//排水//为衣服脱水washer.setTime(8);//定时八分钟washer.dehydrate();//脱水washer.off();//关机以下程序演示全自动洗衣机洗衣服的过程。AutoWasher washer=new AutoWasher();//开始洗衣服washer.on();//开机washer.setMode("标准模式");//设置洗衣机模式washer.start();//开始洗衣服,洗衣结束后,30分钟内洗衣机会自动关

6、机对比以上代码,可以看出全自动洗衣机封装了进水,排水和定时等洗衣服的细节,为使用者提供了更加简单易用的接口,所以用全自动洗衣机洗衣服更方便。2:把所有的属性藏起来假如某种属性允许外界访问,那么提供访问该属性的公开方法,假如电视剧有个音量属性volume,这是允许使用者访问的。使用者通过setVolume()和getVolume()方法来访问这个属性。private int volume;/**设置音量*/public void setVolume(int volume){   this.volume=volume;}/**查看当前音量*/p

7、ublic int getVolume(){  returnvolume;}为什么volume属性要设置为public呢?其实这样做有以下原因:(1)  更符合真实世界中外因通过内因起作用的客观规律,一个对象的属性发生变化应该是外因和内因共同作用的。外因就是使用者可以向电视机发送消息,请求调解音量。内因就是电视机本身有音量控制装置来调解音量。(2)  能够灵活的控制属性的读和修改的访问级别。对象的有些属性只允许使用者读,但不允许使用者修改,而只有内部对象才能修改,例如电表的用电度数。(3)  防止使用者错误的修改属性。例如银行账号Accou

8、nt对象有一个密码口令,当用户设置密码口令时,要求密码必须是6位数。如下所示:public voidsetPassword(Stringpassword){if(password

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。