在学习PHP面向对象编程的过程中,我看了很多视频教程,看了很多文章。我看到的许多PHPOOP教程都说使用getter和setter。这对我来说毫无意义;为什么我会将类属性设置为私有(private)或protected,然后使用函数公开该属性?我开始研究并在这里找到了现在乞求这个问题的文章:您应该在PHP中使用getter和setter而不是直接访问类的属性吗?如果是,为什么?(非技术术语,请。其他一些问题给出了原因,但它们太技术性了,我无法理解他们试图解释的内容)如果不是,为什么不呢?注意:在阅读一些类似的StackOverflow问题时,我注意到thispost由Google开发人
当我调用$user->get_email_address()时会发生什么?选项1:按需从数据库中提取电子邮件地址publicfunctionget_email_address(){if(!$this->email_address){$this->read_from_database('email_address');}return$this->email_address;}选项2:在创建对象时从数据库中提取电子邮件地址(和其他用户属性)publicfunction__construct(...,$id=0){if($id){$this->load_all_data_from_db($i
我目前正在处理一些非常不稳定的代码。代码本身不是遗留的,但它使用的框架是遗留的并且非常糟糕。我想开始为一个类编写一些junit测试(为了改变!),但为了有效地做到这一点,我需要添加一些getter和setter。我需要setter以便我可以检查类中私有(private)变量的状态(这里进行的一种状态机设计模式)并且我需要getter来模拟某些方法中的私有(private)变量是什么。你们认为为了能够编写单元测试而将getter和setter添加到类中是坏的、好的还是可以接受的? 最佳答案 我会避免它。一般来说,您应该尽可能地构建事物
引用嵌套对象的最佳做法是什么?假设我有以下内容:classOuter{privateInnerAinnerA;//gettersandsetters}classInnerA{privateInnerBinnerB;//gettersandsetters}classInnerB{privateStringsomeString;//gettersandsetters}在我的Controller或服务类中,我需要检查InnerB类的someString字符串变量以确保它不为null或不为空,所以我这样做:if(getOuter().getInnerA().getInnerB().getSom
我的项目中有很多javabean。我需要为他们生成一个JUnit测试类。使用Eclipse3.2和junit4.4生成的测试方法如下所示:publicvoidtestGetName(){//fail("Notyetimplemented");}@TestpublicvoidtestSetName(){//fail("Notyetimplemented");}@TestpublicvoidtestGetEmployeeid(){//fail("Notyetimplemented");}@TestpublicvoidtestSetEmployeeid(){//fail("Notyetimp
我正在编写的其中一个类处于非常特殊的情况。我有一个名为User的类,它看起来像这样:publicclassUser{privatelongid;//+gettersandsettersprivatebooleanisDeletable;//+gettersandsettersprivateStringname;//+gettersandsettersprivateStringpassword;//+gettersandsettersprivateStringemail;//+gettersandsettersprivateStringauthenticationRealm;//+get
我参与了一个重构JSF实现的项目。现有代码未遵循正确的JSF标准。为了实现这一目标,我正在学习JSF中的所有概念(我已经亲body验了JSF)。具体来说,我想问一下我的想法。在MVC模式中,JSF中的模型组件是什么?是托管Bean吗?在操作方法中编写业务逻辑是个好主意吗?我见过数百行写在Action方法中的行。您认为我们可以在getter方法中编写任何逻辑吗?在JSF生命周期中调用了多少次getter或setter。编写faces-config.xml的常规方法是什么。我在一份文档中读到,它说将托管bean声明和该bean的导航案例一起编写是一种很好的做法。它将更具可读性。编写阶段监听
在Eclipse中是否可以为字段自动创建Getters和Setters。但是我有很多私有(private)领域,只有setter/getter应该存在。Eclipse中的某处是否有一个不创建setter的“createGetters”函数?好吧,编写getter并没有那么多工作,但是自动完成它会很好:)谢谢,勒拉德 最佳答案 在GenerateSettersandGetters屏幕上,右侧有Selectgetters按钮-使用它。 关于java-在Eclipse中仅自动创建getter,
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion所以我知道通常有很多关于getter和setter的问题,但我找不到与我的问题完全相同的问题。我想知道人们是否会根据不同的语言更改get/set的使用。我开始学习C++,并被教导使用getter和setter。这是我的理解:在C++(和Java?)中,变量可以是公共(public)的或私有(private)的,但我们不能混合使用。例如,我不能有一个仍然可以在类内部更改的只读变量。它要么全部是公
当我查看iOS5开发人员库时,它说我必须为我创建的每个变量包含访问器方法。但是,当我输入@property(weak,nonatomic)NSString*userName;但是,我没有看到任何错误提示我需要“getter”和“setter”。我做错了什么吗? 最佳答案 您不会收到有关需要“getter”和“setter”的消息,因为当编译器“合成”该属性时,会为您创建这些访问器方法。你不必担心他们。当编译器遇到@synthesize指令(在Xcode4.4中,甚至不再需要它)时,将为您创建访问器方法。这在Apple的TheObje