何时以及为什么我应该在类中使用public
,private
和protected
函数和变量?他们之间有什么区别?
例子:
// Public
public $variable;
public function doSomething() {
// ...
}
// Private
private $variable;
private function doSomething() {
// ...
}
// Protected
protected $variable;
protected function doSomething() {
// ...
}
Run Code Online (Sandbox Code Playgroud) 搜索提出了一个简单的定义:数据隐藏.
但是,请考虑以下两个示例:
1)第一个例子:
Class Employee
{
public int age;
}
Run Code Online (Sandbox Code Playgroud)
2)第二个例子:
Class Employee
{
private int age;
public int getAge(){return age;}
}
Run Code Online (Sandbox Code Playgroud)
问题:
在上述两个示例中,没有数据隐藏,age
要么被其他人修改,要么被其他人查看.数据隐藏在哪里?封装如何帮助上面的例子?