面向对象与面向过程的比较:
//面向过程:代码冗余量过多;因为需要修改源代码所以不便于扩展功能即不便于维护
//面向对象:更简便,易维护
//对象:一切皆为对象
//类:对众多对象的抽象(包含了对象的共同特征)
//通过变量(成员变量)和方法(成员方法)描述类的特征
//方法:函数
/*
访问修饰符(控制成员在哪些位置可以访问):public 代表共有的,在任何地方都可以访问;protected 代表受保护的,只能在该类或该类的子类中访问;private 代表私有的,只能在该类中访问;
*/
class Ren
{
public $name = "张三";
public $sex = "男";
function speak()
{
echo "可以说话";
}
}
//实例化对象(从类中造一个具体的对象)
//类的类型是object
$r = new Ren();
$r->name = "李四";//赋值
echo $r->name;//取值
$r->speak();
var_dump($r);
$r1 = new Ren();
//$r与$r1是不同的对象所以是不同的(每一个对象都是独立的个体)
var_dump($r==$r1);
class Ren1
{
public $name;
public $sex;//类里面的普通成员属于对象
//构造方法
function __construct($v)
{
//this关键字,在类里面代表该对象(谁用即代表谁,在这里代表$r2)
$this->sex =$v;
}
}
$r2 = new Ren1("男女");
//构造方法:系统用来造对象的方法(始终存在,如果不写也是存在的,写上是为了初始化)
var_dump($r2);
封装:类的聚合
继承:子类获得大部分父类内容的过程
多态:类的不同形态