为什么成员变量通常是私有的?

use*_*637 4 php oop

我今天才开始学习面向对象的编程,并且通过观察发现,在所有示例中,成员变量都是私有的。为什么通常是这种情况?

// Class
class Building {
    // Object variables/properties
    private $number_of_floors = 5; // These buildings have 5 floors
    private $color;

    // Class constructor
    public function __construct($paint) {
        $this->color = $paint;
    }

    public function describe() {
        printf('This building has %d floors. It is %s in color.', 
            $this->number_of_floors, 
            $this->color
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

另外,如果您声明成员变量是公共的,那么在声明其的类之外访问它的语法是什么?

最后,您是否必须在类中的每个变量和函数之前添加“ public”或“ private”?

编辑:谢谢大家的回答,任何人都可以确认是否必须对类中的每个变量和函数添加“ public”或“ private”吗?

谢谢!

gna*_*nat 5

经验法则是尝试尽可能隐藏信息,仅在绝对必要时才共享信息。

  • 俄国编码人员有时会在不必要的广泛使用修饰语中说“ 大众莫罗佐夫”,暗示一个有关信息披露不当以及由此造成的进一步惩罚的故事-Pavlik Morozov

    一个13岁的男孩,向父亲谴责父亲,然后被家人杀害...