天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php面向?qū)ο笕ヂ?(九)訪問類型

13.訪問類型
類型的訪問修飾符允許開發(fā)人員對類成員的訪問進(jìn)行限制,這是php5 的新特性,但卻
是OOP 語言的一個好的特性。而且大多數(shù)OOP 語言都已支持此特性。php5 支持如下3 種訪
問修飾符
public (公有的、默認(rèn)的),private (私有的)和protected (受保護(hù)的)三種。
public 公有修飾符,類中的成員將沒有訪問限制,所有的外部成員都可以訪問(讀和寫)
這個類成員(包括成員屬性和成員方法),在php5 之前的所有版本中,php 中類的成員都是
public 的,而且在php5 中如果類的成員沒有指定成員訪問修飾符,將被視為public。
例:public $name;
public function say(){};
private 私有修改符,被定義為private 的成員,對于同一個類里的所有成員是可見的,即
是沒有訪問限制;但對于該類的外部代碼是不允許改變甚至讀操作,對于該類的子類,也不
能訪問private 修飾的成員。
例:private $var1 = ‘A'; //屬性
private function getValue(){} //函數(shù)
protected 保護(hù)成員修飾符,被修飾為protected 的成員不能被該類的外部代碼訪問。但是
對于該類的子類有訪問權(quán)限,可以進(jìn)行屬性、方法的讀及寫操作,該子類的外部代碼包括其的
子類都不具有訪問其屬性和方法的權(quán)限。
例:protected $name;
protected function say(){};
private protected public
同一個類中 √ √ √
類的子類中 √ √
所有的外部成員 √
代碼片段
復(fù)制代碼 代碼如下:
<?php
/**
* Define MyClass
*/
class MyClass{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello(){
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; //Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello(); // Shows Public, Protected and Private
/**
* Define MyClass2
*/
class MyClass2 extends MyClass{
//We can redeclare the public and protected method, but not private
protected $protected = 'Protected2';
function printHello(){
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj2 = new MyClass2();
echo $obj->public; //Works
echo $obj2->private; // Undefined
echo $obj2->protected; // Fatal Error
$obj2->printHello(); // Shows Public, Protected2, not Private
?>

代碼片段
復(fù)制代碼 代碼如下:
<?php
/**
* Define MyClass
*/
class MyClass{
// Contructors must be public
public function __construct() { }
// Declare a public method
public function MyPublic() { }
// Declare a protected method
protected function MyProtected() { }
// Declare a private method
private function MyPrivate() { }
// This is public
function Foo() {
$this->MyPublic();
$this->MyProtected();
$this->MyPrivate();
}
}
$myclass = new MyClass;
$myclass->MyPublic(); //Works
$myclass->MyProtected(); // Fatal Error
$myclass->MyPrivate(); // Fatal Error
$myclass->Foo(); // Public, Protected and Private work
/**
* Define MyClass2
*/
class MyClass2 extends MyClass{
// This is public
function Foo2(){
$this->MyPublic();
$this->MyProtected();
$this->MyPrivate(); // Fatal Error
}
}
$myclass2 = new MyClass2;
$myclass2->MyPublic(); // Works
$myclass2->Foo2(); // Public and Protected work, not Private
?>

另外在子類覆蓋父類的方法時也要注意一點,子類中方法的訪問權(quán)限一定不能低于父類
被覆蓋方法的訪問權(quán)限,也就是一定要高于或等于父類方法的訪問權(quán)限。
例如,如果父類方法的訪問權(quán)限是protected 那么子類中要覆蓋的權(quán)限就要是protected
和public,如果父類的方法是public 那么子類中要覆蓋的方法只能也是public,總之子類中的
方法總是要高于或等于父類被覆蓋方法的訪問權(quán)限。

php技術(shù)php面向?qū)ο笕ヂ?(九)訪問類型,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产香蕉视频在线观看 | 西施打开双腿下面好紧 | 久久日韩精品无码一区 | 91麻豆久久 | 国产剧情在线精品视频不卡 | 亚洲 欧美 国产 伦 综合 | 午夜性爽视频男人的天堂在线 | 51精品国产AV无码久久久密桃 | 色欲AV色欲AV久久麻豆 | 麻豆官网md.pub | 美女张开腿露尿口给男人亲 | 国内2018年午夜福利5678 | 亚洲福利网站 | 99久久e免费热视频百度 | 热热久久超碰精品中文字幕 | 色WWW永久免费视频首页 | 99精品国产第一福利网站 | 亚洲视频免费观看 | 国产精品外围在线观看 | 国产精品视频第一区二区三区 | 国产精品亚洲一区二区三区久久 | 国产日韩精品一区二区在线观看 | 色一伦一情一区二区三区 | 最近高清日本免费 | 亚洲大片免费 | 真实的强视频免费网站 | 日本68xxxxxxxxx老师 | 高h浪荡文辣文神奇宝贝 | 蜜臀AV熟女人妻中文字幕 | 青青app | 九色终合九色综合88 | 九色PORNY蝌蚪视频首页 | 超碰97超碰在线视频哦 | brazzers情欲狂欢 | 向日葵视频app下载18岁以下勿看 | 我的好妈妈8高清在线观看WWW | 午夜免费无码福利视频麻豆 | 伊人久久大香线蕉avapp下载 | 国产剧情福利AV一区二区 | 国产成人亚洲精品无广告 | 亚洲欧美国产旡码专区 |