php面向对象基础(二)

2017-08-20 00:00 出处:360java.com 作者:360java  阅读()
面向对象三大特性 1.封装 目的:为了使类更加安全 做法: a.将成员变量变为私有的 b.做一个成员方法来间接访问 c.在该方法里边加限制条件 class Ren { private $age;//18-50之间 private $name

面向对象三大特性
1.封装
目的:为了使类更加安全
做法:
a.将成员变量变为私有的
b.做一个成员方法来间接访问
c.在该方法里边加限制条件
class Ren
{
    private $age;//18-50之间
    private $name;
    //魔术方法,给变量赋值
    function __set($n,$v)
    {
        if($n=="age")
        {
            if($n>=18&&$n<=50)
            {
                $this->$n = $v;
            }
        }
        else
        {
            $this->$n = $v;
        }
    }
    //魔术方式,取变量值
    function __get($n)
    {
        return $this->$n;
    }
    //以下此方法仅适用于一个或者两个变量
    /*function setAge($n)
    {
        if($n>=18&&$n<=50)
        {
            $this->age=$n;
        }
    }
    function getAge()
    {
        return $this->age;
    }    */
}
$r=new Ren();
$r->__set("age",20);
$r->age=20;
$r->name="张三";
var_dump($r);

2.继承
子类可以继承父类的一切(除了私有成员之外)
特点:单继承
class Ren
{
    private $name;
    function Run()
    {
        echo "跑步:<br>";
    }
}
class China extends Ren //extends继承自谁
{
    //重写override
    function Run()
    {
        parent::Run();
        echo "中国人跑步";
    }
}
$c=new China();
$c->Run();
var_dump($c);

3.多态(弱类型语言实现不了多态)
定义:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,该引用在调用方法的时候所表现出的不同

分享到:
本文标签: 面向, 对象, 基础

相关文章

发表评论(共条评论)愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

Copyright (C) java学习 360java 360java.com, All Rights Reserved.

苏ICP备16022210号