jjzjj

java - Java封装数组的方法

我从Java开始学习setter、getter和封装。我有一个非常简单的程序,两个类:Container有一个私有(private)的int数组(numArray)和他的setter&getter。Main创建一个Container对象并在totalArray方法中使用它。publicclassContainer{privateintnumArray[]={0,0,0};publicint[]getNumArray(){returnnumArray;}publicvoidsetNumArray(intindex,intvalue){numArray[index]=value;}}pub

java - getter 方法的必要性

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whyusegettersandsetters?这是一个新手问题。是否非常有必要使用getmethods来访问属性值?一旦分配了值,就可以获得值目录。例如,在下面的代码中,displayName()可以在不借助任何getter方法的情况下显示firstName值。或者它是一种标准的编码标准,必须具有getter和setter方法或提供该值的任何其他方法?classTest{privateStringfirstName;publicvoidsetName(Stringfname){firstName=fname

java - setter 和 getter 的单元测试

老师要我们做综合单元测试。对我来说,这将是我第一次使用JUnit。我对测试集和获取方法感到困惑。你认为我应该测试它们吗?如果答案是肯定的;这段代码是否足以进行测试?publicvoidtestSetandGet(){inta=10;ClassfirstClass=newClass();firstClass.setValue(10);intvalue=firstClass.getValue();Assert.assertTrue("Error",value==a);}在我的代码中,我认为如果有错误,我们无法知道错误是由于setter或getter而派生的。 最

java - Eclipse:如何在添加字段时自动生成getter?

我正在使用TDD,并且有一个非常典型的编码模式,在我编写单元测试代码时使用Eclipse自动创建方法和字段。例如:输入不存在的方法名,例如:myObj.setValue(someValue);单击IDE中的红色小错误标记以创建“setValue”方法。在setValue方法中输入:publicvoidsetValue(字符串值){this.value=值;}单击红色错误标记以自动创建私有(private)字段(在本例中称为“值”);所以在这一点上,我希望Eclipse自动创建getter方法,而不必使用source->generategettersandsetters菜单。我看到了这个

Java:如何干净利落地处理大量字段及其封装?

假设我的任务是编写某种角色扮演游戏。这意味着,例如,我想跟踪一个CharacterGameCharacter及其统计数据,例如智力、伤害加成或生命值。我非常害怕在项目结束时我可能会处理大量的字段-对于每个字段我都必须确保它们遵循一组非常相似的约束和行为(对于例如,我希望它们限制在最小值和最大值之间;我希望能够区分“基本值”和“临时奖金”;我希望能够在不通过setter的情况下增加和减少两者和setter/getter)。突然之间,对于每个字段,我都需要一个(两个?)getter和四个setter,也许还需要几个resetter!即使是10个字段,这也意味着很多方法都是一样的,哎呀。对于

可访问数据的 Java 约定。 (公共(public)访问器和 getter /命名)

通过JavaAPI,您会看到许多冲突的命名和实践,这让我很困惑。例如:String类有一个名为count的私有(private)变量(Integer),它跟踪字符串的大小,但是这是由名为length()的getter返回的>.如果你转向任何类型的数组,它们没有长度的getter方法,它们只是通过公共(public)访问器传递变量,并且可以通过arrayInstance.length获取。回到String类,我们有String#getBytes()方法,它是一个getter,类似于length()getter,但是执行的逻辑稍微多一些获取并返回值。就我个人而言,创建一个前缀为get的ge

添加一个getter到array.protype

我想将getter添加到array.protype中以获取数组的最后一个元素。我这样做了:Object.defineProperty(Array.prototype,'last',{get:function(){returnthis[this.length-1];}});这适合记忆吗?我担心的是,如果您实例10000对象:我希望我在内存中只有1个功能我担心的是,我可能有10000*1=10000功能在内存中我的目标是这样使用:constarr=[{},{},{},{}];arr.last===arr[arr.length-1];看答案它以您想要的方式工作,每个实例的原型指的是同一对象。在Jav

Java - 是否应该通过 getter 和 setter 方法在构造函数中访问私有(private)实例变量?

我知道私有(private)实例变量是通过它们的公共(public)getter和setter方法访问的。但是当我借助IDE生成构造函数时,它直接初始化实例变量,而不是通过它们的setter方法初始化它们。Q1。因此,我是否应该更改IDE为构造函数生成的代码,以通过它们的setter方法初始化这些实例变量。Q2。如果是,那么为什么IDE不以这种方式生成构造函数代码?=============================编辑=======================================我使用Eclipse和NetbeansIDE这是一个一般性问题。但正如@Lords所

java - 为具有前缀 "has"的 boolean 成员编辑 lombok getter 方法名称

我在lombok中有一个boolean变量hasObject,它生成isHasObject()。我正在使用@Datalombok注释。如何将方法更改为hasObject() 最佳答案 在你的情况下它可能是:classXY:Object{@Getter(fluent=true)publicbooleanhasObject;}或@Accessors(fluent=true)classXY:Object{publicbooleanhasObject;}根据文档:fluent-Aboolean.Iftrue,thegetterforpepp

c++ - 在 C++ 中包装来自不同库的自定义类型

当使用不同的库时,我总是发现每个库都有针对相同“真实词实体”的自定义类型。假设我有一个使用3维点的项目,我只使用来自OpenCv和PCL(点云库)的算法。我发现自己对这些类型有一点:OpenCv的Point3_PCL的PointXYZPoint3d我的自定义类型现在我有了为Point3d编写的算法,但我还想使用这些库中的算法。来回将大集合中的每个点从一种类型转换为另一种类型需要内存和时间。对此进行某种抽象的最佳方法是什么? 最佳答案 你可以这样做templatestructGetter{};templatestructGetter>