問下 我對 這個代碼的理解是否正確
?class Car {
? ?private static $speed = 10;
? ?
? ?public static function getSpeed() {
? ? ? ?return self::$speed;
? ?}
? ?
? ?public static function speedUp() {
? ? ? ?return self::$speed+=10;
? ?}
} // 這個是父類 第一個$speed ?是私有的靜態(tài)的屬性 值是10 ?第二個getSpeed 是公共的靜態(tài)方法 這個方法 是獲取 ?這個父類里面的屬性$speed的 self是什么意思 不清楚 ? 然后第三個是類里面的方法 ?是讓這個父類里面的$speed屬性 自加10的意思 我不懂 第二個 方法 有啥用 就是獲取么?那么 刪除掉 第二個方法 直接運(yùn)行 第三個方法 讓$speed屬性自加10不行么?第二個 方法 有什么用呢?
class BigCar extends Car {
? ?public static function start() {
? ? ? ?parent::speedUp(); //這個是子類了 ? ?這個子類里面的start()方法 就是調(diào)用 父類里面的speedUp這個 方法的
? ?}
}
BigCar::start();echo BigCar::getSpeed();
求高手 詳細(xì) 解答 萬分感謝 ?特別是 父類 里面的 第二個方法 ?我不知道有啥用 ?可以省略么?如果省略 會怎么樣?
2015-12-05
你的報錯問題是,你把方法刪了,還去調(diào)用那個方法。echo BigCar::getSpeed(); ? 去掉這行。
1、靜態(tài)屬性 是共享的,而不是一個實(shí)例對象對應(yīng)一個屬性。 每一個實(shí)例對象都可以對它進(jìn)行操作。
2、靜態(tài)屬性可以通過普通方法調(diào)用。
3、2都回答了可以通過普通方法調(diào)用啦。
2015-12-05
我說 你刪除getSpeed方法后的報錯代碼哦
2015-12-05
class Car {
? ? private static $speed = 10;
? ? public static function getSpeed() {
? ? ? ? return self::$speed;
? ? }
? ? public static function speedUp() {
? ? ? ? return self::$speed+=10;
? ? }
}
class BigCar extends Car {
? ? public static function start() {
? ? ? ? parent::speedUp();
? ? }
}
BigCar::start();
echo BigCar::getSpeed(); ?
2015-12-05
你把代碼發(fā)給我看一下
2015-12-05
第二個方法存在的意義是,在你不想對$speed進(jìn)行 假發(fā)運(yùn)算時就想得到它的值時調(diào)用它。
你要是覺得,你每次想訪問$speed值的時候 想得到的結(jié)果就是當(dāng)前值 + 10 后的結(jié)果的話,可以省略