面向对象的基础

学习要点:
1.什么是面向对象
2.OOP 的特点
3.关键的 OOP 概念
4.创建 OOP
讲师:杨应勇

许多语言本身就是面向对象(OOP)的,而PHP 用了几年才引入了这类功能。面向对象的诞生是开发范型一次的重大改变,编程的注意力重新从应用程序的逻辑回到其数据上来。换句话说,OOP 将焦点从编程的过程性事件转向最终建模的真实实体。这使得应用程序更接近于我们周围的现实世界。

一、什么是面向对象

面向过程

这就好比你是公司的一名员工,今天有个任务要在公司组装一批电脑。那么你就开始采购、讨价还价、运输回公司、开始组装、布线网络、调试机器、完成。也就是说,面向过程就是具体化的实现,细节明确。

面向对象

这就好像你是公司的总裁,你布置给一名员工一个组装一批电脑的任务。完毕。也就是说,面向对象就是抽象化的执行,具体还是由那名员工来完成。而细节方面,总裁不需要去考虑。这样的好处是显而易见的,在有管理高层的公司可以协调作业,而没有管理高层的公司,只有一些具体实现功能的员工,会乱做一团。

二、OOP 的特点

1、封装

隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成 一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

2、继承

继承是从一个基类得到一个或多个类的机制。
继承自另一个类的类被称为该类的子类。这种关系通常用父亲和孩子来比喻。子类将继承父类的特性。这些特性由属性和方法组成。子类可以增加父类之外的新功能,因此子类也被称为父类的“扩展”。

3、多态

多态是指 OOP 能够根据使用类的上下文来重新定义或改变类的性质或行为,或者说接口的多种不同的实现方式即为多态。把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

三、关键的 OOP概念

1、类(class)

类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。实际上它本身并不是对象,因为它不存在于内存中。当引用类的代码运行时,类的一个新的实例,即对象,就在内存中创建了。虽然只有一个类,但能从这个类在内存中创建多个相同类型的对象。

2、对象(object)

对象是一件事、一个实体、一个名词,可以获得的东西,可以想象有自己的标识的任何东西。对象是类的实例化。一些对象是活的,一些对象不是。比如这辆汽车、这个人、这间房子、这张桌子、这株植物、这张支票、这件雨衣。
概括来说就是:一切皆对象。
例如:类是对象的抽象定义,说白了,如果这个对象是电脑,类可以创建出许多对象,
类可以生成很多电脑,再白一点,类可以当成一个电脑生产厂,可以生成出很多很多台电脑。

3、属性(attribute)

属性是用于描述类的某方面的性质,例如电脑的品牌、型号等。通过方法来访问和操作属性,一方面可以保护字段,同时还允许访像问公共字段一样访问数据。
例如:获取电脑品牌,设置电脑品牌等操作。

4、方法(method)

方法与函数非常相似,只不过方法是用来定义类的行为。与函数一样,方法可以接受输入参数,可以向调用者返回一个值。
例如:打开电脑,输入文本,运行程序。

四、创建OOP

类的创建

class Computer{
//类的字段(成员)
//类的方法
}

对象的声明

$com = new Computer();

new 标识符是为了在内存中创建一个对象(实例),而 Computer()就是那个类所生成的实例。

字段(成员)的添加

class Computer{
//字段(成员)的添加
public $name="联想小v";
public $cpu="i7";
}

1.声明字段:public $name = '联想小星'
a)public 是修饰符,表示这是一个公共字段,可以通过外部直接访问。
b)$name 是变量名。
c)'联想小v'是变量的值。
2.读取字段

echo $com->name;//联想小星

3.设置字段

$com->name="联想天逸";

方法的创建

class Computer{
//方法的创建
public function run($parm){
echo $parm,"我成功的运行了";
}
}

方法的执行

$com->run("我是小星");

五、构造方法 析构方法

所谓构造方法,也是方法,只不过是一种特殊的方法。只需要实例化即完成调用过程。一般来说,构造方法总是在做一些初始化的工作。

class Computer{
public function __construct(){
 echo "我是构造方法,我负责做初始化工作";
}
}

相对应构造方法,还有一种特殊的方法是析构方法,它的用途在整个类使用完毕就执行。一般可用于清理内存中对象(脚本执行完毕的时候会自动清理)。而如果有脚本执行完毕后并没有清理的,比如数据库数据等,就有必要使用析构方法。

class Computer{
public function __destruct(){
echo "我是析构方法";
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,936评论 6 13
  • #1.面向对象的相关概念 01 对象是什么? 什么都是对象,对象是具体的事物; 02 对象的描述信息(静态特征) ...
    Ainy尘世繁花终凋落阅读 248评论 0 0
  • 面向对象的三大特征 1 封装:将一些方法、属性、事件集中到一个统一的类中,使用者无需知道其中的细节,如驾驶汽车加减...
    明亚保险经纪_李佟阅读 1,536评论 1 6
  • 什么是面向对象? 面向对象是一种编程方法; 面向对象是一种思维方式 面向对象不是一种编程语言 什么是面向对象的思维...
    往事一块六毛八阅读 194评论 0 0
  • 破茧成蝶 春风十里桃花凉 落絮成冢 飘零无需伏流水 黄昏掩归途 倦飞舞 把心埋在无边的黑夜 隔绝成一个星体 不需要...
    水墨故事阅读 228评论 0 1