Java基础—面向对象特性
Posted Jack丶WeTa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础—面向对象特性相关的知识,希望对你有一定的参考价值。
1.三大特性
①、封装
所谓封装,就是将客观事物封装成抽象的类,类的数据和方法只允许可信的类或者对象操作,对不可信的类或对象进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或者某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
②、继承
所谓继承,是指可以让某种类型的对象获取另一种类型的对象的属性和方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为"子类"或者"派生类",被继承的类称为"基类"、"父类"或"超类"。继承的过程,就是从一般到特殊的过程。继承的实现方式有两种方式:一是继承父类,直接使用基类的属性和方法而无需额外编码;二是实现接口,仅使用基类的属性和方法的名称,子类必须提供实现。
③、多态
所谓多态,是指一个类实例的相同方法在不同的情形有不同的表现形式。多态机制是具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们可以通过相同的方式予以调用。
2.五大基本原则
面向对象有五大基本原则,分别是单一职责原则、开放封闭原则、替换原则、依赖原则和接口分离原则。
①、单一职责原则(Single Responsibility Principle,SRP)
是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能过多,否则一天到晚虽然是忙碌的,效率却高不起来。
②、开放封闭原则(Open-Close Principle,OCP)
是指一个模块在扩展性方面应该是开放的,而在可更改性方面是封闭的。例如,一个网络模块原来只有服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当服务端和客户端分开,将公共部分抽象出来。
③、替换原则
是指子类应当可以替换父类并出现在父类能够出现的任何地方。例如,公司搞年度晚会,所有员工都可以参加抽奖,那么不管老员工还是新员工,也不管总部员工还是外派员工,都应当可以参加抽奖,否则公司就不和谐了。
④、依赖原则(the Dependency Inversion Principle,DIP)
是指具体依赖抽象,上层依赖下层。假设模块B是较模块A低的模块,但模块B需要使用模块A的功能,这是,模块B不应当直接使用模块A中的具体类,而应当有模块B定义一个抽象接口,并由模块A来实现这个抽象接口,这样就达到了依赖倒置的目的,模块B也解除了对模块A的依赖,反过来是模块A依赖于模块B定义的抽象接口。上层模块难以避免的依赖下层模块,但假如模块B也直接依赖模块A的实现,就可能造成循环依赖。一个常见的问题就是编译模块A时需要直接包含到模块B的Java文件,而编译模块B时同样要直接包含到模块A的Java文件。
⑤、接口分离原则(the Interface Segregation Principle,ISP)
是指模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来。
以上是关于Java基础—面向对象特性的主要内容,如果未能解决你的问题,请参考以下文章
大数据必学Java基础(四十一):面向对象三大特性之一多态(Polymorphism)
大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)