php的学习笔记之面向对象(五)访问修饰符
2016-03-10 20:31
681 查看
PHP中有三种访问修饰符,分别是:
public(公共的、默认)
protected(受保护的)
private(私有的)
下面我们把类看作是一个家庭的某个成员,父类表示父亲,子类表示孩子。
public(公共的、默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。被声明为public的成员,它允许本类、本类子类和所有外部成员访问。举个例子:你的样貌是可以给所有外部成员看到的。
protected(受保护的)被声明为protected的成员,只允许该类及该类的子类进行访问。比如说你的银行卡里有多少钱,只有你自己或者你的孩子知道。
private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
比如:你银行卡的密码,只有你自己知道。
于是乎我们可以生成如下代码:
输出结果为:
说明子类没有继承到父类的私有成员,而继承到了父类的受保护成员。
总结一下,如果你想别人都能访问的属性和方法,就设置为public权限
如果你只想分享给子类的话,就设置为protected权限
如果你只想一个类独享的话,就设置为private权限
public(公共的、默认)
protected(受保护的)
private(私有的)
下面我们把类看作是一个家庭的某个成员,父类表示父亲,子类表示孩子。
public(公共的、默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。被声明为public的成员,它允许本类、本类子类和所有外部成员访问。举个例子:你的样貌是可以给所有外部成员看到的。
protected(受保护的)被声明为protected的成员,只允许该类及该类的子类进行访问。比如说你的银行卡里有多少钱,只有你自己或者你的孩子知道。
private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
比如:你银行卡的密码,只有你自己知道。
于是乎我们可以生成如下代码:
class Father{ public $face = "beautiful" ; //共有成员 protected $money = "100000000"; //受保护成员 private $password = "123"; //私有成员 } class Child extends Father{ //访问父类的受保护成员 public function getFatherMoney(){ echo "Father's money is ".$this->money."<br>"; } //访问父类私有成员 public function getFatherPassword(){ echo "Father's password is ".$this->password."<br>"; } } $fa = new Father(); echo "Father's face is ".$fa->face ."<br>"; $ch = new Child(); echo "Child's face is ".$ch->face . "<br>"; $ch->getFatherMoney(); $ch->getFatherPassword();
输出结果为:
说明子类没有继承到父类的私有成员,而继承到了父类的受保护成员。
总结一下,如果你想别人都能访问的属性和方法,就设置为public权限
如果你只想分享给子类的话,就设置为protected权限
如果你只想一个类独享的话,就设置为private权限
相关文章推荐
- zend studio、nsight中插入字符为什么自动删除后面的字符
- iptables开始ftp
- ThinkPHP基本编程
- php日记——使用mysqli
- php MVC原理
- 第七章ContentProvider
- ThinkPHP中Model类的对象生命周期
- HDU 1.1.8 A+B for Input-Output Practice (VIII)
- HDU 1.1.7 A+B for Input-Output Practice (VII)
- HDU 1.1.6 A+B for Input-Output Practice (VI)
- HDU 1.1.5 A+B for Input-Output Practice (V)
- thinkphp引入类的使用
- 跟踪php中异常的调用过程
- PHP常用类型判断函数
- Laravel监听数据库访问、打印SQL
- 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM
- phpstrtotime()对于31日求上个月有问题
- HDU 1.1.4 A+B for Input-Output Practice (IV)
- HDU 1.1.3 A+B for Input-Output Practice (III)
- PHP排序函数