- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
抽象和封装学习
抽象和封装学习心得
抽象是对对象的抽象,把对象中相同或相似地地方抽象出来,从特殊到一半,从具体到抽象的过程,对象经过抽象得到类,类的实例化成了对象。也可以高度抽象成接口,让不完全相同,但包含相同点的对象实现此接口,也就是利用多态实现。把相同点抽象出来,抽象成此类或接口的方法、属性、字段等,封装就是隐藏某个对象的与其基本特性没有很大关系的所有详细信息的过程,就是将需要让其他类知道的暴露出来,不需要让其他类了解的全部隐藏起来,封装可以阻止对不需要信息的访问,我们可以使用访问指定符实现封装,也可以使用方法实现封装,可以将隐藏的信息作为参数或者属性值、字段指传给公共的接口或方法,以实现隐藏起来的信息和公开信息的交互。封装的目的就是为了实现“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉,就是这个类只完成自己的功能,不需要外部参与;低耦合,就是仅暴露很少的方法给外部使用。使用封装的具体好处是:1.便于调用者调用,调用者不需要知道该功能是如何实现的,只需要知道调用该接口或方法能实现该功能;2.良好的封转,便于修改内部代码,提高可维护性。一个好的封转可以在以后代码功能发生改变的时候,只需在封装的地方修改即可,不需要大范围内修改。3.良好的封转可以进行数据完整性检测,保证数据的有效性。封装要注意的是:1.一般使用private(除非本属性确定会让子类继承)2.提供相应的get/set方法来访问相关的属性,这些方法通常是public,从而提供对属性的读取操作。
方法,方法是用于定义该类或该类的实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中函数是最基本单位,整个程序有一个个函数调用组成;面向对象中,整个程序的基本单位是类,方法从属于类的。使用参数声明方法,带参数的方法通过几种机制传递值被调用的,值、引用、输出。
值传递:值传递的参数在内存中创建一个副本。
引用:引用传递的参数不在内存中创建变量的独立副本。引用参数存储传递的数据成员的内存地址。
输出:输出参数用于将值从方法中传递出来。
静态方法和静态变量:
在类中,用static声明的成员变量为静态成员变量。它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享。用“类名.类属性”来调用,不可以使用“对象.类属性”
用static声明的方法是静态方法,不需要对象,就可以调用(类名.方法名)
在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问费static的成员。
可以通过类名访问静态成员。
继承和多态
方法的重载
方法的重载是指一个类中可以定义有相同的名字,但是参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。方法的调用,匹配离得最近的类型,参数不同是指类型、个数、顺序不同。只有返回值不同的不构成方法的重载。只有形参的名称不同,也不构成方法的重载。构造函数也和普通方法一样,可以重载。
继承的本质是对一批类的抽象,从而实现对现实世界更好的建模。实际开发中尽量不要使用继承,是在要用也要使用抽象类,最好使用接口。如果是稳定的“is-a”关系,用继承,如果是“has-a”关系或者不稳定的”is -a”关系,用组合。
多态:如果编译时类型和运行时类型不一致,就会造成多态。多态是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。多态可以让我们不用关心某个对象到底是什么具体的类型,就可以使用该对象的某些方法,从而实现更加灵活的编程,提高系统的可扩展性。多态的存在涉及到继承、方法的重写、父类引用指向子类对象。
基础知识补充:
抽象与封装技术的实现技术
在解决实际问题时,首先需要利用抽象技术对问题域中出现的所有实体进行分析,归纳出共性的特性形成一类实体的基础特征,这些特征包括属性和行为,然后将他们包装在一起,构成一个描述实体特性的封装体,这是面向对象程序设计方法实现软件系统所使用的核心技术。JAVA中,用类和对象共同实现这种抽象和封装的处理机制。C#中还有接口。类是对具有相同该属性和行为的对象特性的描述。属性是对象的静态部分,行为时对象的动态部分。
设计类成员的基本原则:
将能够反映实体特征且与需求有关的属性和行为设计成数据成员和成员方法;
应该将数据成员的访问属性设计成private;成员方法的访问属性设计成public;
一定要设计构造方法,包含有参数和无参数,参数格式要适合人们的使用习惯;
对于每一个数据成员都应爱提供一套set()和get()成员方法,以便外界对其操作
设计一个toString(),方便对象的输出
抽象类
抽象方
文档评论(0)