两个简单的类,一个检查长度并返回true的false。第二次检查第一个类是返回true还是false并根据它返回消息。现在,我的问题是,我将变量设置为公共变量,保护变量还是私有变量有何不同(注意:我知道它们是什么)。
为什么我会这样做,如果我将我的变量公开,可以访问它?
我知道封装是什么以及它如何告诉封装所有的班级成员,但似乎没有任何意义......如果是IRL我可以理解,是的,有人可能会从我的房子里拿走一些东西,所以我应该保留他们都被锁定..但在编程似乎没有任何意义..
http://www.codeproject.com/Questions/161855/Encapsulation-and-why-we-must-use-it 这个人告诉任何人可以访问班级成员,但这些人是谁?我认为PHP在服务器中运行,默认情况下对它的访问受到限制。你身边没有人可以访问/编辑文件..
class Length_class{
public $bus;
public $returned;
function __construct($bus){
$this->bus = $bus;
if($this->bus < 10){
$this->returned = false;
}else{
$this->returned = true;
}
}
}
class Length_class_extended extends Length_class{
function display_length(){
if($this->returned){
return "Length is $this->bus";
}else{
return "Length is $this->bus";
}
}
}
$Length_class_extended = new Length_class_extended(10);
echo $Length_class_extended->display_length();
答案 0 :(得分:2)
在这一小段代码中可能没有意义。但实际的应用程序比使用更多类(和人员)的应用程序更大。
封装提供的安全性与黑客攻击代码无关。这是关于你知道将要使用你的代码并且你想说出他可能访问或不访问的内容的人。
您使用封装来指定您的类是什么以及它应该做什么。它可以帮助您定义类的职责。并帮助其他开发人员了解它,而无需了解您是如何实现它的。
封装良好的代码可以提供无痛(或至少是较小的痛苦)类修改。
答案 1 :(得分:1)
使用访问修饰符的主要原因是当您提供其他人使用的类时。通过封装,其他程序员可以在他的代码中使用您的类,而无需了解您的课程内容。
他将拥有一个要使用的方法列表,并且只会通过此接口与该类进行交互。这迫使他以一种不会破坏他的程序或类的功能的方式“正确”使用该方法。
如果您是唯一使用该代码的人并且它是一个相对简单的项目,并且完全有可能与每个成员公开编写功能代码,那么您可能看起来似乎并不相关 - 无论如何这是良好的做法并且值得做。它会强制您以真正的封装形式编写一个“好”的样式,如果您想在各种情况下重用代码,可以避免滥用您自己的类,从而避免让您头疼。