用户组 
易积分5541
热心99
好评17

|
class
主讲人: 幻令
博客:https://blog.icodef.com
论坛:https://www.eruyi.cn
概念
感觉我讲起来会很混乱,先写上一些,以从书柜中拿书看,看完归还为例子,精神值为0时停止看书
面向过程
将问题分为一个一个的步骤
如果是面向过程的解决方案就是这样:
拿书->看书->判断精神值->翻页->看书->判断精神值->翻页->看书->判断精神值(为0了)->归还
将我的各个动作化为一个一个的步骤(函数),然后实现这一整个流程
面向对象
将构成问题的各个事物分解成各个对象
如果是面向过程的解决方案就是:
将人,书和书柜抽象为三个类
人有看的方法和精神值,书的属性
书有翻页的方法和页码的属性(书名,书id也可作为属性,这里不探讨了)
书柜有拿书,放书的方法
这时候我们的类就抽象好了
然后实例化书柜和人
调用书柜的拿书方法获得一本(实例化)书给人的书属性
人调用看的方法,并且减精神值,然后调用书的翻页方法,书页码+1,完成之后判断精神值,决定继续调用看还是放书
类
具有相同方法和属性的对象就是一类,类的实例化就是对象
像上面,虽然这里的例子是每一个类都是只有一个对象
但是我也可以实例化多个,每一个有着不同的属性值,例如书,每一本我赋予不同的名字,或者书的isbn码等等
实例化
实例化是指在面向对象的编程中,通常把类创建对象的过程称为实例化
class
class book{
public $page=1;//属性
public function pageTurn(){//方法
echo '书翻页<br/>';
}
}
构造函数 & 析构函数
class a{
public function __construct(){
echo "构造函数";
}
function __destruct(){
echo "析构函数";
}
}
实例化
$p=new people();
静态成员
class a{
public static $attr=10;
}
echo a::$attr;
类常量
class a{
const a='常量无法被改变';
}
|
|