<?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>'; // 男就显示年龄,女孩子的年龄是保密的点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号