PHP-面向对象的三大基本特征和五大基本原则的概念

三大特征:封装、继承、多态

1、封装

封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。

2、继承

继承,是指可以让某个类型的对象获得另一个类型的对象的属性的方法,它支持按级分类的概念。

继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。

继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

3、多态

多态,是指一个类实例的相同方法在不同情形有不同表现形式。

多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

五大原则

1、单一职责原则SRP(Single Responsibility Principle)

是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。

2、开放封闭原则OCP(Open-Close Principle)

一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,

那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

3、替换原则(the Liskov Substitution Principle LSP)

子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,

也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。

4、依赖原则(the Dependency Inversion Principle DIP)

具体依赖抽象,上层依赖下层。

假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到

了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。

5、接口分离原则(the Interface Segregation Principle ISP)

模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

原文地址:https://www.cnblogs.com/yongzhenye/p/8778025.html

时间: 2024-10-14 08:14:07

PHP-面向对象的三大基本特征和五大基本原则的概念的相关文章

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

前言 前文提到,面向对象的三个特征:封装.继承.多态.那么面向对象是怎么体现这三个特征呢? 关于五大基本原则,个人找资料的时候看得头都大了,对新手(如我)来说还是比较有理解难度的,本篇用较为简单的表述来帮助理解,想先看进阶版(完全版)的可以先移步:牢记面向对象五个基本原则 面向对象的三大基本特征 1. 封装 封装,就是将客观事物抽象为逻辑实体,实体的属性和功能相结合,形成一个有机的整体.并对实体的属性和功能实现进行访问控制,向信任的实体开放,对不信任的实体隐藏.,通过开放的外部接口即可访问,无需

面向对象的三大基本特征,五大基本原则

网上的讲解很多,但大都类似,这里进行转载整理.三大基本特征是理解五大基本原则的前提. 一.三大基本特征:封装.继承.多态 1.封装 封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员. 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员. 面相对象的不

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

http://blog.csdn.net/zhang2531/article/details/52052453 面向对象的编程方法是为了解决系统的可维护性.可扩展性.可重用性.系统的需求是变化的,如果需求增加或者修改,就需要全部推到重来是效率低下的:不应该重复造轮子,你写一个单链表,他写一个,这样重复的工作是可以消除掉的. 面向对象与面向过程的区别 前者是纪传体,如史记按人物线索写,后者是编年史,按年代写.BS谈普通类的优点和OOP的伟大之处.面向过程是构造数据加方法(算法+数据=程序),面向对

面向对象三大基本特性和五大基本原则

透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础. 三大特性是:封装,继承,多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是 面向对象的特征之一,是对象和类概念的主要特性. 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体.在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问.通过这种方 式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了

【java基础】面向对象的三大基本特征之-------继承

面向对象的三大特征:封装,继承,多态 java通过extends关键字来实现继承,而且是单继承,一个子类只可以有一个直接父类,但是父类还可以有父类... java.long.Object是所有类的父类,如果一个类没有声明继承于谁,那么默认就是继承于java.long.Object类 通过继承,子类可以获得父类的全部的属性和方法,同时进行拓展. 代码示例: 1 package extendss; 2 3 /** 4 * 类的继承演示代码 5 * 这是一个父类 train 火车类 6 * 默认继承于

面向对象三大基本特性,五大基本原则

三大特性是: 封装 继承 多态 五大基本原则: 单一职责原则SRP(Single Responsibility Principle) 开放封闭原则OCP(Open-Close Principle) 替换原则(the Liskov Substitution Principle LSP) 依赖原则(the Dependency Inversion Principle DIP) 接口分离原则(the Interface Segregation Principle ISP) 详细: 所谓封装,也就是把客

深入理解面向对象的三大基本特征

我们都知道面向对象有三个基本特征:封装,多态和继承. 封装: 我先来援引一 位网友写的段子:基本的变量已经不再浮游于一大段一大段的程序中了,它们已经放弃了(其实是程序员不用这种方式了)这种自由自在的存在方式,而是安稳的寄 居于庞大而蹒跚的“对象”内部,与外界隔开来,通过迂回曲折的间接途径与外部世界联系和通信.而这些对象,就是它们这些基本变量的生存机器! 在面向过程的开发中,变量被暴露在整个程序中,不小心的一个修改就可能导致整个程序出错. 所以封装有利于我们让自己的程序更健壮.这个大家很好理解.

C#面向对象的三大基本特征

封装: 封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节不被外界发现(可以使代码更加安全),外界只能通过接口使用该对象,而不能通过任何形式修改对象内部实现,正是由于封装机制,程序在使用某一对象时不需要关心该对象的数据结构细节及实现操作的方法.使用封装能隐藏对象实现细节,使代码更易维护,同时因为不能直接调用.修改对象内部的私有信息,在一定程度上保证了系统安全性. 继承: 继承来源于现实世界,一个最简单的例子就是孩子会具有父母的一些特征,即每个孩子都会继承父亲或者母亲的某些特

面向对象的三大基本特征之一封装

封装概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改. 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问.要访问该类的数据,必须通过指定的 方式.适当的封装可以让代码更容易理解与维护,也加强了代码的安全性. 原则 将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问. 封装性在Java当中的体现 方法就是一种封装 关键字private 也是一种封装 封装的操作——private关键字 private关键字作用: pri