为了账号安全,请及时绑定邮箱和手机立即绑定

请大神过来看看我这样理解的对吗?

<?php
class Car {
    private $speed = 0;
    
    public function getSpeed() {
        return $this->speed;
    }
    
    protected function speedUp() {
        $this->speed += 10;
    }
    
    //增加start方法,使他能够调用受保护的方法speedUp实现加速10
    public function start(){
        $this->speedUp();
    }
}
$car = new Car();//创建的对象里面能够访问的方法只有getSpeed()和start(),此时速度为0
$car->start();//调用方法start(),而start()可以访问私有方法speedUp(),此时速度为10
echo $car->getSpeed();//最后调用可以访问的公有方法来获取当前速度,最后输出为10.

正在回答

2 回答

没错吧

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

菜鸟Wenco 提问者

非常感谢!
2018-04-29 回复 有任何疑惑可以回复我~

protect方法不能被外部类访问,$car new Car()是外部类所以不能调用类Car的protect方法,记住了class X{}大括号之外的都是外部类,父类和子类就不一样,有继承关系所以可以调用

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

菜鸟Wenco 提问者

提这个问题的时候我还没毕业没工作,现在一看就全明白了,当时的理解也没错。无非就是protected private public 三种修饰的方法的访问权限问题
2018-08-05 回复 有任何疑惑可以回复我~
#2

慕研 回复 菜鸟Wenco 提问者

四个月提升这么多嘛大佬 现在看着还是有点不明白 不太明白self和this到底是怎么用的 我们下明年上半年也要去工作了 现在很懵
2020-11-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请大神过来看看我这样理解的对吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信