第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

public static function getInstance() { 這里可以不用靜態(tài)方法嗎?

class Car {
? ?private function __construct() {
? ? ? ?echo 'object create';
? ?}

? ?private static $_object = null;
? ?public static function getInstance() {
? ? ? ?if (empty(self::$_object)) {
? ? ? ? ? ?self::$_object = new Car(); //內(nèi)部方法可以調(diào)用私有方法,因此這里可以創(chuàng)建對象
? ? ? ?}
? ? ? ?return self::$_object;
? ?}
}
//$car = new Car(); //這里不允許直接實例化對象
$car = Car::getInstance(); //通過靜態(tài)方法來獲得一個實例

正在回答

2 回答

這里必須用靜態(tài)方法,如果是非靜態(tài)方法的話必須通過將類實例化成一個對象后才能夠調(diào)用,而這里的構(gòu)造函數(shù)又被設置成private權(quán)限,無法在外部直接實例化,所以必須設置為靜態(tài)才能實現(xiàn)代碼的功能。

2 回復 有任何疑惑可以回復我~
#1

new新的開始 提問者

public $_object = null; public function getInstance() { if (empty($this -> _object)) { $this -> _object = new Car(); 可以這么來嗎
2017-02-14 回復 有任何疑惑可以回復我~
#2

new新的開始 提問者

非常感謝!
2017-02-20 回復 有任何疑惑可以回復我~
#3

懶惰的馬仔3724683

是因為靜態(tài)方法不需要實力化,所以才這么生成一個對象嗎?
2017-02-28 回復 有任何疑惑可以回復我~

$car = Car::getInstance() 這個語句是調(diào)用靜態(tài)方法的,你這么設置就沒法調(diào)用了

0 回復 有任何疑惑可以回復我~
#1

new新的開始 提問者

$car = Car->getInstance(); 這樣呢。。
2017-02-15 回復 有任何疑惑可以回復我~
#2

ANARKHH 回復 new新的開始 提問者

Car是一個類的名稱不是對象的名稱,所以不能用->符號
2017-02-16 回復 有任何疑惑可以回復我~
#3

new新的開始 提問者 回復 ANARKHH

$c =$car ->getInstance(); 應該是這樣的。這樣行嗎。
2017-02-16 回復 有任何疑惑可以回復我~
#4

new新的開始 提問者 回復 ANARKHH

哦。。搞明白了。原來這個是構(gòu)造函數(shù)。。沒注意看清楚 。構(gòu)造是不能new的。。謝謝你啦。
2017-02-16 回復 有任何疑惑可以回復我~
#5

ANARKHH 回復 new新的開始 提問者

你這么設置的話就一定要先實例化$car,然而這個類的構(gòu)造函數(shù)是private權(quán)限,你沒有辦法在外部直接實例化這個對象,所以根本沒辦法創(chuàng)建$car這個對象,所以這種情況也是不存在的。
2017-02-17 回復 有任何疑惑可以回復我~
#6

會噴火的大怪龍 回復 new新的開始 提問者

那你這個$car又是哪里來的
2017-05-05 回復 有任何疑惑可以回復我~
查看3條回復

舉報

0/150
提交
取消

public static function getInstance() { 這里可以不用靜態(tài)方法嗎?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號