Blogger Information
Blog 57
fans 0
comment 0
visits 46974
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
类的封装集成
藍錄的博客
Original
686 people have browsed it

实例

<?php
/**
 * 对象的三大特征: 封装,继承,多态
 * 对象三要素之一: 封装
 *
 * 1.[封装]是指类中成员的访问进行限制,从而实现类的封装;
 * 2.类成员包括二类: 类属性, 类方法
 * 3.类成员的访问限制符(3p): public, protected, private
 * 4.类成员的访问应该通过公共接口(方法)进行,提高安全性
 * 5.类中成员可以使用 $this->成员 直接访问
 * 6.$this 是对象伪变量,代表着当前类的一个实例对象
 */

class Demo2
{
    //声明类属性,属性值必须是字面量,不能是变量或表达式
    public $name;   // 未初始化,默认值为null
    public $salary = 6800; // public 公共属性
    //将类属性进行封装,外部不能访问
    protected $sex = 0;   // protected 受保护的成员,仅限本类或本类的子类访问,0男1女
    private $age = 33;  // private 私有成员,仅限本类访问

    //声明类方法:创建公共接口,供外部访问类中访问受限成员
    public function getSex()
    {
        //返回语义化的性别名称
        return ($this->sex == 0) ? '男' : '女';
    }

    //创建$age属性的公共访问接口
    public function getAge()
    {
        // 男性直接输出年龄,女性拒绝查看
        return  ($this->sex == 0) ? $this->age : '保密';
    }
}

//类的实例化
$demo2 = new Demo2();

//测试属性默认值
var_dump(is_null($demo2->name));    // ($demo2->name === null) 返回同样结果: true

//查看公共属性 salary
echo $demo2->salary,'<br>';

//echo $demo2->sex,'<br>'; // protected 成员,类外部不可访问
//echo $demo2->age,'<br>'; // private 成员,类外部不可访问

echo '性别是: ', $demo2->getSex(),'<br>';  // 根据标志,返回语义化的中文
echo '年龄是: ', $demo2->getAge(),'<br>';  // 男就显示年龄,女孩子的年龄是保密的

运行实例 »

点击 "运行实例" 按钮查看在线实例

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post