码迷,mamicode.com
首页 > 其他好文 > 详细

第五十二天上课 面向对象

时间:2016-04-26 17:23:58      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:

类和对象概念    任何东西都可以称为对象,指具体的信息    

                      类是对所有同类的对象抽象出来的共性

定义和使用类

/*访问修饰符
    public代表公有的,可以在任何地方调用,默认项  
    protected受保护的,只能在类或类的子类里面访问  
    private私有的,只能在类里面访问
*/
//定义类
class Ren//类名,首字母一般大写         
{
    public $Name; //成员变量
    protected $age;
    private $height; 
    var $sex;     //没有访问修饰符在前面加var,默认为public
    function __construct($a)  //构造函数,函数名固定不可更改
    {
        $this->sex=$a;    
    }  
    function __destruct()     //析构函数,对象销毁时自动执行,函数名固定不能更改
    {
        echo "该对象销毁了";      
    }
    function Run() //成员方法
    {
        echo "这个人正在奔跑<br>";
    }
    function Say()
    {
        echo $this->Name."正在说话";    //$this引用类里面的数据,$this哪个对象调用代表哪个对象
    }
}
//使用类
$a=new ren("男"); //初始化对象
$a->Name = "张三";  //给对象成员变量赋值
var_dump($a);      //输出对象的全部信息
$a->run();  //调用成员方法
//this引用  
$a->Say();
echo"<br>";
//构造函数
echo $a->sex;

封装    面向对象的三大特性(封装,继承,多态)之一    

//封装   目的,让类更加安全,不让外界直接访问。 先把成员变量变为私有,用各种方法来实现对成员变量的间接操作。
class Ren     
{
    private $name;
    private $age;
    private $height; 
    private $sex;     
    function setage($a)           //赋值类私有变量的函数
    {
        if($a>=10&&$a<=50)
            $this->age=$a;
            
    }
    function getage()             //返回类私有变量的函数
    {
        return $this->age;
    }
    function __set($name,$value)  //对类里面的私有变量进行赋值的魔术方法,函数名不能更改
    {
        if($name=="age")
        {
            if($value>20&&$value<100)
                $this->$name = $value;
        }
        else
            $this->$name = $value;
    }
    function __get($name)        //对类里面的私有变量获取返回的魔术方法,函数名不能更改
    {
        return $this->$name;
    }
}
$a=new Ren;
$a->setage(50);
echo $a->getage();
$a->name = "张三";     
$a->age = "40";           //执行该语句会自动调用__set()方法
$a->sex = ‘男‘;
var_dump($a);
echo "<br>";
echo $a->name;            //执行该语句会自动调用__get()方法

第五十二天上课 面向对象

标签:

原文地址:http://www.cnblogs.com/lovling/p/5433975.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!