您现在的位置是:首页 > 后端 > PHP PHP
什么是面向对象
2020-05-17【PHP】2233人已围观
简介> 思路:1.概念 2.举例(面向过程和面向对象的对比) 3.面向对象的三大特性 ### 概念 面向对象是一种思想,是基于面向过程而言的 ,它能让复杂问题简单化,程序员不需要了解具体的实现过程,只需要指挥对象去实现功能。 ### 举例(面向过程和面向对象的对比) **例子:有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择** - 1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。(面向过程) - 2、去饭店,告诉老板:老板!来一份鱼香肉丝
思路:1.概念 2.举例(面向过程和面向对象的对比) 3.面向对象的三大特性
概念
面向对象是一种思想,是基于面向过程而言的 ,它能让复杂问题简单化,程序员不需要了解具体的实现过程,只需要指挥对象去实现功能。
举例(面向过程和面向对象的对比)
例子:有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择
- 1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。(面向过程)
- 2、去饭店,告诉老板:老板!来一份鱼香肉丝!(面向对象)
面向对象有什么优势呢?
首先你不需要知道鱼香肉丝是怎么做的,降低了耦合性。如果你突然不想吃鱼香肉丝了,想吃宫保鸡丁,对于1来说可能不太容易了,还需要重新买菜,买调料什么的。对于2就很容易,大喊:老板!那个鱼香肉丝换成宫保鸡丁吧,提高了可维护性。总的来说就是降低耦合,提高维护性!
面向过程是具体化的,流程化的,解决一个问题,需要一步一步的分析,一步一步的实现。
面向对象是模型化的,只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,我们不用管。
面向对象的三大特性
1、封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。
将描述事物的数据和操作封装在一起,形成一个类;被封装的数据和操作只有通过提供的公共方法才能被外界访问(封装隐藏了对象的属性和实施细节),私有属性和方法是无法被访问的,表现了封装的隐藏性,增加数据的安全性。
2、继承
程序中的继承是类与类特征和行为的一种赠与或获得
两个类之间的继承关系,必须满足 is a 的关系:子类 is a 父类 ,例如:狗 is a 动物
继承可以提高代码复用性;继承是多态的前提。
继承是使用已存在的类的定义,作为建立新类的基础技术,新类可以增加新的属性或新的方法,也可以用父类的功能,但不能选择性地继承。通过使用继承,能够非常方便地复用这些代码。
3、多态
父类或接口定义的引用变量,指向子类或具体实现类的实例对象。提高程序的拓展性。
简写:父类引用指向子类对象,从而产生多种形态
- 父类引用只能调用父类定义的属性和方法,不能调用子类独有的属性和方法
- 如果子类覆盖父类方法,执行子类覆盖之后的方法
关注博客,更多精彩分享,敬请期待!
Tags: 面试题
很赞哦! (0)
上一篇:脏读、幻读、不可重复读
下一篇:面对对象笔记
相关文章
随机图文
css动画
> 在CSS动画中,如果你想让元素的 border-radius 从50%逐渐变为0%,你可以使用 @keyframes 规则来定义这一变化过程。以下是一个简单的示例: ```css /* 定义一个动画 */ @keyframes borderRadiusChange { 0% { border-radius: 50%; } 100% { border-radius: 0; } } /* 将动画应用到某个元素上 */ .someElementbat锁屏和熄屏 windows
bat锁屏和熄屏 windowsPHP中判断字符串是否含有中文
## 判断全是中文 > 方法一 ``` $str = '吾爱编程'; if (preg_match_all("/^([\x81-\xfe][\x40-\xfe])+$/", $str, $match)) { echo '全部是中文'; } else { echo '不全是中文'; } ``` > 方法二 ``` $str="'吾爱it编程"; if(!eregi("[^\x80-\xff]","$str")){ echo "全是中文";PHP日历
PHP日历小案例