我对getter/setter和构造函数的使用有点困惑(请参阅下面的代码示例)publicclassExampleClass{privateintvalue=0;publicExampleClass(){value=0;}publicExampleClass(inti){this.value=i;}publicintgetValue(){returnvalue;}publicvoidsetValue(intval){this.value=val;}publicstaticvoidmain(String[]args){ExampleClassexample=newExampleClass
这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个回答)关闭6年前。我看到了一段代码,其中getter和setter方法被声明为私有(private)的。我试图弄清楚它背后的逻辑,我真的很难理解你为什么要将它们声明为私有(private)?这与我们试图通过getter和setter实现的目标完全相反。 最佳答案 我能想到几个原因:您想阻止future的公共(public)访问。如果其他程序员看到您的代码并想要访问变量,但没有setter和getter,他可能会认为您只是忘记了它们
这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个回答)关闭6年前。我看到了一段代码,其中getter和setter方法被声明为私有(private)的。我试图弄清楚它背后的逻辑,我真的很难理解你为什么要将它们声明为私有(private)?这与我们试图通过getter和setter实现的目标完全相反。 最佳答案 我能想到几个原因:您想阻止future的公共(public)访问。如果其他程序员看到您的代码并想要访问变量,但没有setter和getter,他可能会认为您只是忘记了它们
如果我在这样的调用中收到NullPointerException:someObject.getSomething().getSomethingElse().getAnotherThing().getYetAnotherObject().getValue();我得到一个相当无用的异常文本,例如:Exceptioninthread"main"java.lang.NullPointerExceptionatpackage.SomeClass.someMethod(SomeClass.java:12)我发现很难找出哪个调用实际上返回了null,我经常发现自己将代码重构为如下内容:Fooret1
如果我在这样的调用中收到NullPointerException:someObject.getSomething().getSomethingElse().getAnotherThing().getYetAnotherObject().getValue();我得到一个相当无用的异常文本,例如:Exceptioninthread"main"java.lang.NullPointerExceptionatpackage.SomeClass.someMethod(SomeClass.java:12)我发现很难找出哪个调用实际上返回了null,我经常发现自己将代码重构为如下内容:Fooret1
以下是两种方法:具有所有类属性的构造函数优点:我必须输入准确数量的参数类型,所以如果我出错,编译器会警告我(顺便说一句,有没有办法防止错误地切换参数列表上的两个Integer的问题?)缺点:如果我有很多属性,则实例化行可能会变得很长,并且可能跨越两行或更多行setter和默认的空构造函数优点:我可以清楚地看到我在设置什么,所以如果我做错了什么,我可以在输入时立即查明它(我不能犯之前切换两个变量的错误同类型)缺点:具有大量属性的对象的实例化可能需要几行(不知道这是否真的是一个缺点),如果我忘记设置一个属性,编译器不会说什么。你会做什么,为什么?您是否知道建议的任何灯光模式(考虑到每次实例
以下是两种方法:具有所有类属性的构造函数优点:我必须输入准确数量的参数类型,所以如果我出错,编译器会警告我(顺便说一句,有没有办法防止错误地切换参数列表上的两个Integer的问题?)缺点:如果我有很多属性,则实例化行可能会变得很长,并且可能跨越两行或更多行setter和默认的空构造函数优点:我可以清楚地看到我在设置什么,所以如果我做错了什么,我可以在输入时立即查明它(我不能犯之前切换两个变量的错误同类型)缺点:具有大量属性的对象的实例化可能需要几行(不知道这是否真的是一个缺点),如果我忘记设置一个属性,编译器不会说什么。你会做什么,为什么?您是否知道建议的任何灯光模式(考虑到每次实例
这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个回答)关闭6年前。我想知道什么时候在我的类(class)中使用get和set方法(getName,setName),什么时候使用简单的classVariable.name=""而不是а=classVariable.getName()这是使用set和get方法的类示例publicclassClassExampe{Stringname;Stringcourse;publicStringgetName(){returnname;}publicvoidsetName(Stringstuden
这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个回答)关闭6年前。我想知道什么时候在我的类(class)中使用get和set方法(getName,setName),什么时候使用简单的classVariable.name=""而不是а=classVariable.getName()这是使用set和get方法的类示例publicclassClassExampe{Stringname;Stringcourse;publicStringgetName(){returnname;}publicvoidsetName(Stringstuden
这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个回答)关闭7年前。GettersandSettersarebad简要阅读上面的文章,我发现getter和setter是糟糕的OO设计,应该避免使用它们,因为它们违背了封装和数据隐藏。既然是这种情况,在创建对象时如何避免它,以及如何在模型对象中考虑到这一点。在需要getter或setter的情况下,可以使用哪些其他替代方法?谢谢。 最佳答案 你错过了重点。那篇文章的有效且重要的一点是:Don'taskfortheinformatio