面向对象的程序设计( object-oriented programming
)
将世界上的万物看做一个个相互独立的对象,他们之间并无因果关系,他们平时是“鸡犬之声相闻,老死不相往来”的。只有在某种外部力量的驱动下,比如
sex
,他们之间才会产生摩擦,火花,碰撞。通过摩擦,碰撞才会产生结晶,这个结晶究竟是什么东东,god也不会猜到。这些交互(摩擦,碰撞)构成了这个生动世界的“过程”。也就是说:上帝创造了每一“物”,但物与物之间如何摩擦,碰撞上帝不管
php5中非常重要的一个概念
面向对象的概念(类是什么?对象是什么?)如何创建一个对象?
没有面向对象之前,我们能否开发程序?
答:当然可以,
比如 c语言,没有类与对象的概念
被称为面向过程的语言
面向对象与面向过程,同样是一种编程范式,
回顾以往的代码
每一个步骤,每个分支,都要我们考虑进来,并加以控制,
如果步骤/人物角色/分支特别多的时候,程序就会特别庞大,不好维护。
从开发角度讲,无论你有多少分支,多少步骤,这1w或2w个步骤,也是在我们讨论范围内的一个确定情况
面向过程方法认为:
每个小系统都有明确的开始和结束,开始和结束之间有着严谨的因果关系。
只要我们将这个小系统中的每一个步骤和影响这个小系统走向的所有因素都分析出来, 我们就能完全定义这个系统的行为,就是说作为上帝,你创造着每一步,但事无巨细。
例如:
比如一只鸡,他可能来叼菜叶,也有可能不来,这个事情就没有必要再创建之初就定义下来
定义一只鸡,这样一个对象,它有一定的智商,一定的功能,比如去叼你家菜叶。
至于去不去,受环境的影响,比如菜叶的大小,园子的远近。。。
就是说:作为上帝,创建有功能的对象,对象有一定的功能,对象与对象之间在其功能范围内,相互操作。
至于做那些操作?
比如:公鸡可以去吃沙子,可以去吃菜叶,也可以去打架。
来一题,分析下
(1). 对象有谁?
张三,车
(2). 对象有什么属性和方法?
张三{ 智商,打招呼 }
车{撞人}
(3)对象与对象之间发生了那些交互(摩擦,碰撞)?
车撞人,影响了对象张三的IQ,导致张三说话语无伦次。
<?php
class Man
{
public $iq = 100;
public function say($value='')
{
$arr = array('早上hao', 'wanshanghao','你妹啊');
if ($this->iq >= 100) {
echo $arr[0];
} else {
$i = rand(0,2);
echo $arr[$i];
}
}
}
class BMW
{
public function hit($people)
{
$newIq = rand(50,110);
$people->iq = $newIq;
}
}
$zhangsan = new Man();
$QQ = new BMW();
$zhangsan->say();
echo "</br>";
//hit zhangsan
$QQ->hit($zhangsan);
echo $zhangsan->iq.'</br>';
echo $zhangsan->say().'</br>';
echo $zhangsan->say().'</br>';
echo $zhangsan->say().'</br>';
?>