面向对象的三大特征、六个原则

三大特征

封装:  一个类封装了数据以及操作数据的代码逻辑体。定义了数据的可访问属性(私有、公有)

继承 : 可以让一个类型获取另外一个类型的属性的方式。分为实现继承和接口继承

多态 : 类实例的一个方法在不同情形下有不同的表现形式,即不同的外在行为。使具有不同的内部结构的对象可以共享相同的外部接口。

六大原则

单一功能原则 : 每个类型(包括接口和抽象)功能要求单一,只负责一件事情。降低代码复杂度,增加可读性可维护性,只有在逻辑足够简单、类中的方法足够少时才可以在代码级别上违反单一职责原则。职责被分解为很多细粒度的职责,程序已经写好的情况下,分解类开销大(分解意味着零散,加载变的复杂,阅读也变得复杂),修改类虽然违反单一职责原则,但是是个不错的选择。

开放封闭原则:一个软件实体应该对扩展开发,对修改关闭。可扩展但是不可更改。

核心:用抽象构建框架,用实现类实现扩展。

替换原则(里氏代换原则):子类能够替换父类,出现在父类能够出现的任何地方

当使用继承时,尽量遵循历史替换原则,尽量不要去重写或者重载父类的方法,以免破坏整个继承体系的 。因为父类在定义或者实现某些方法时,规定了必须遵守的规则和契约。

LSP原则是:只要父类能出现的地方子类就可以出现,而且替换为子类还不产生任何错误或异常。怎么做到:

子类重载父类方法,方法的前置条件要比父类更宽松

子类实现父类的抽象方法时,方法的后置条件要比父类更严格。

依赖原则:具体依赖抽象,上层依赖下层。核心思想是面向接口编程。

两个模块之间依赖的应该是抽象(接口或抽象类)而不是细节。细节(实现类)依赖于抽象。

依赖原则基于的事实:相对于实现类的多变性,抽象的东西要稳定得多,基于抽象的构架也比基于实现的架构更加稳定,且扩展性更高

接口分离原则:模块间要通过具体接口分离开,而不是通过类强耦合。例如A类对B类的依赖,可以抽象接口I,B实现I,A类依赖I来实现。但是抽象接口必须功能最小化(与单一功能原则有点不谋而合)。

迪米特原则:最小依赖原则,一个类对其他类尽可能少的了解,只与朋友通信。降低耦合

单一职责原则:职责单一。

里氏替换原则:不要破坏继承体系结构。

依赖倒置原则:面向接口编程

接口隔离原则:设计接口时要精简单一。

迪米特原则:降低耦合

这五个原则都是开源原则的注意事项,开闭原则是一切编程的出发点和目的

参考:https://blog.csdn.net/seek24/article/details/13293947

原文地址:https://www.cnblogs.com/Adazyn/p/8761263.html

时间: 2024-08-29 20:46:10

面向对象的三大特征、六个原则的相关文章

Java面向对象的三大特征和五大原则

Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问级别. 封装目的:增强数据安全性,不能让其他用户随意访问和修改数据,和简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员. 继承 继承(Extend)是指将多个相同的属性和方法提取出来,新建一个父类Java中一个类只能继承一个父类,且只能继承访问权限非private的属性和方法

面向对象的三大特征、五大原则

1.面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么.- 继承:继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类).继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的<Java与模式>或<设计模式精

面向对象的三大特征——封装、继承、多态

接触过面向对象的人都知道面向对象有三大特征,分别是封装.继承和多态.这三者分别指的是什么,为什么是这哥仨,使用他们有什么好处,我们来梳理一下. 封装 原则:隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: ①将变化隔离. ②便于使用. ③提高重用性. ④提高安全性. Demo1: 比如一个学生类:他具有姓名和年龄两个属性,但是为了提高安全性和重用性,便于使用,我们将其封装起来. public class Student { private String name; private in

Java面向对象的三大特征

Java面向对象的三大特征: 封装.继承.多态 封装和继承几乎都是为多态而准备的 一.      封装 首先,属性能够描述事物的特征,方法能够描述事物的动作.封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用. 封装:封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系.也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行.

面向对象的三大特征——全网最详解析

面向对象的三大特征--封装性.继承性.多态性 类的封装性 封装是将数据以及对数据的操作组合起来构成类,类是一个不可分割的独立单位.类中提供与外部联系的方法,又尽可能隐藏类的实现细 节. 封装性提供一种软件模块化的设计思想,像组装硬件一样.类的设计者提供标准化的软件模块,使用者根据实际需求选择所需要的类模块, 集成为软件系统,各模块之间通过传递参数等方式进行工作.设计者需要考虑类的定义.类中数据和方法的访问权限以及方法如何实现等问题: 使用者需知道有哪些类,每个类的特点,每个类提供了哪些常量.成员

php面向对象的三大特征

1.面向对象的三大特征:封装.继承.多态.(抽象(扩展的))2.00A:分析,OOD:设计,OOP:编程.3.封装:信息隐蔽,封装,所有的函数和方法,类中的属性和行为也是封装. 三个访问修饰符public.protected.private也是封装.4.public 公共的 谁都可以用,也可以修改:protected 受保护的 只有自己和后代可以使用和修改: private 私有的 只有自己可以使用和修改:5.继承: 扩展父类的内容,注意只能继承public和protected修饰的内容,而pr

黑马程序员--Objective-C之--OC面向对象的三大特征

OC面向对象的三大特征是封装.继承和多态. OC语言也支持面向对象的三大特征,OC提供了@private.@package.@protected.@public等访问控制符来实现封装 OC也允许子类来继承父类,并且支持多态. 一.封装 封装指的是將对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法对内部信息的操作和访问. OC的封装特性需要通过使用访问控制符来实现. (一).访问控制符 1.@private:当前类访问权限.如果类的成员变量使用@priva

解析PHP面向对象的三大特征

class BenHang extends Card{ /*构造函数与及构造的继承*/ function __construct($cardno,$pwd, $name,$money){ parent::__construct($cardno,$pwd, $name,$money); } function take($money){ echo "本行取款{$money}没有手续费·····<br>"; } function zhuan($money){ echo "

聊一聊面向对象的三大特征

学习Java语言程序设计也有一段时间了.现在我想对封装.继承和多态,在Java中面向对象的三大特征,总结一下我的理解,不妥当的地方望大家包涵.  封装.给我的感觉封装就是一个包装,一个代码是否健壮,与用不用封装有很大的关系,封装就像是包裹一个礼物,不仅让礼物看起来更加精美,而且还完善了内容.请看代码: class Person {     private String name;     private int age;     public void say() {         Syste

7 面向对象的三大特征

面向对象的三大特征为:封装.继承.多态. 1 封装(encapsulation) 1.1  广义上的封装就是包装,可以将方法看作是对为完成特定功能的代码的封装,可以把类看作对属性和方法的封装.... 狭义上的封装:将属性私有化,然后提供公有的getter和setter方法以供访问. 封装的优点: 1)隐藏了实现细节,简化开发  2)安全  3)提高了代码的可维护性和可扩展性. 步骤: 1)将属性私有化,将修饰符修改private的 2)提供公有的访问方法:getter方法:取值,setter方法