PHP面向对象 三大特性
1类 2对象
类是一个模型 实例化以后 成为对象
####################################
类 抽象化的集合
属性分 静态属性 和 动态属性
成员变量
成员方法 方法都是公共的
访问的修饰符
protect 条件:自己和子类
#####################################
面向对象 三大特性
封装: 目的 使类更加安全
步骤:1成员变量变为私有
2成员构造函数方法(设置与调用)
A设置:方法名($member,$value) 调用:return $this->$member
B连等:在set方法中return $this
C魔术方法:魔术方法:$member 加$可以换成员
3成员方法中增加限制
################################################################
class Ren
{
private $name;
private $age;
public function set_name($v)
{
$this->name=$v;
return $this
}
public function get_name()
{
return $this ->name;
}
public function set_age()
{
if($v>0&&$v<120)
{
$this->age=$v;
}
}
}
$people = new Ren();
$people ->set_name('张三');
$people ->set_age();
#
$people ->set_name('张三')->get_name();
当输入张三时候 返回对象
if 为了增加限制
魔术方法封装
class Ren2
{
private $sex;
private $age;
function __set($name,$value)
{
$this->$name = $value; //$name 加$说明可以加别的参数
}
function __get($name)
{
return$this->$name;
}
}
$peo2 = new REN2();
$peo2->__set('age',6);
$peo2->__get('age');
$peo2->sex ='男';
echo $peo2->sex;
$name 在类中加$ 是表示可以换成员
#############################
继承 子类拥有父类的所有成员
内容
1父类不能调用子类的方法
2重写(override) 在重写中复制父类的方法 parent::
3重载:同一个函数,根据输入参数数量不同,执行不同的逻辑
方法
class 子类名称 extends 父类名称{}
##############################
多态:当父类引用指向子类实例,子类对父类进行重写,父类在引用调用该方法的
目的:最后是用父类
步骤
有继承
父类引用指向子类实例
需要有重写
多态 为了小幅度修改 避免修改内核
作业 overload和override的区别
封装 继承 多态的定义