公共,私有,受保护,哪一个是不可访问的/
时间: 2024-03-23 08:38:40 浏览: 37
在面向对象编程中,公共(public)、私有(private)、受保护(protected)是用来限制类属性和方法的访问权限的关键字。
其中,私有属性和方法是不可访问的,只能在类内部访问。受保护属性和方法可以在类和子类中访问,但不能在类的外部访问。而公共属性和方法可以在任何地方访问。
举个例子,如果我们有一个类 Person,其中有一个私有属性 $name,一个受保护属性 $age,一个公共方法 getName() 和一个受保护方法 getAge(),那么在类外部访问它们的权限如下:
```
class Person {
private $name;
protected $age;
public function getName() {
return $this->name;
}
protected function getAge() {
return $this->age;
}
}
$person = new Person();
$person->name; // 报错,无法访问私有属性 $name
$person->age; // 报错,无法访问受保护属性 $age
$person->getName(); // 可以访问公共方法 getName()
$person->getAge(); // 报错,无法访问受保护方法 getAge()
```
在上面的例子中,我们可以看到,私有属性 $name 和受保护属性 $age 是不可访问的,无法在类外部直接访问。受保护方法 getAge() 也是不可访问的,无法在类外部调用。只有公共方法 getName() 可以在类外部访问。
阅读全文