问题标签 [mutators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
109 浏览

java - 哈希映射和哈希码发生变化,如何告诉集合该对象发生了变化?

哈希图和哈希码问题

有一个 POJO、重写的哈希码和 equals 来帮助一个特定的比较器(这里没有显示)

用户应用程序:

正如预期的那样,第二次搜索表明 Dat 对象 d2[0] 不在集合中,即使它是。我知道如何修复它 - 一种方法 - 删除它,更改它然后将其添加回来。有没有其他方法可以告诉集合我们正在改变一个特定的对象?

来自http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/HashMap.java#HashMap.remove%28java.lang.Object%29

可以看到 Oracle/Sun Java HashMap 如何自我重新散列。问题是 - 我们可以添加一个告诉集合的新方法 - 请重新散列这个对象,而不是删除并重新添加它,这样它更有效。

如果你多次运行上面的代码会发现在某些情况下表格是相同的(对于变异对象的之前和之后的哈希码),所以更快的重新哈希,而不是在更改后删除并添加回来是我所追求的,这利用了这一事实,并且仅在存储桶更改时才重新散列。

0 投票
2 回答
12656 浏览

java - Java ArrayList 类属性修改器和 Java 对象引用

假设一个类有一个 ArrayList 属性:

是否有可能为这个属性设置一个 setter / mutator 方法,如下所示:

还是因为 Java 的处理方式,您必须做一些更复杂的事情?

我尝试使用以下两个类自己进行测试:

测试.java

测试测试.java

输出

索引 0 的第一个 get():一个

修改测试的字符串对象...

索引 0 的第一个 get():1

改回来...使用字符串变量

索引 0 的第一个 get():1

最后一个打印语句应该显示第一个索引是 "One" 。

那么,有什么想法可以实现我的初衷吗?

0 投票
2 回答
67 浏览

c++ - 协助重载操作员

我将直接从我的作业表中输入问题,我不是在寻找整个问题的确切代码,我确实需要帮助找出重载运算符,但重载 + 数学运算符的示例语法将是有益的。这是问题...

*据我所知,表示完整。

*** Time 类包括两个整数成员变量(Hour 和 Minute)、mutator 函数 setHour 和 setMinute,以及访问器函数 getHour 和 getMinute。这些函数应该是内联的。

***时间类还应包括两个构造函数和一个析构函数。默认构造函数应将小时和分钟初始化为 0,并显示消息“来自默认构造函数的您好”。第二个构造函数应该为小时和分钟赋值。析构函数应该显示消息“再见析构函数”这些函数也应该是内联的。

现在为了添加和减去小时和分钟的数量,添加一个重载标准 + 数学运算符的运算符 + 函数和一个重载标准数学运算符的运算符 - 函数。***你们都需要添加一个简化函数,它检查分钟内大于 59 或小于 0 的值,并相应地处理它们到小时。示例 2 小时和 65 分钟将给出 3 小时和 5 分钟。这些函数不应该是内联的。

主程序将创建三个 Time 对象(time1, time2, time3) 提示用户输入两次时间,分别存储在第一个和第二个对象中。然后将添加第一个和第二个对象并放置在第三个对象中然后显示,然后减去放置在第三个对象中然后显示。使用带有第三个对象声明的默认构造函数和带有第一个和第二个对象声明的重载构造函数。

*作业结束*****

*起始码*****

***结束代码***

**当前样本输出*** 你好!!!从构造函数输入小时:9 输入分钟:29

9:30

9:31

9:32

9:33

9:34

按任意键继续 。. . 再见!!!从析构函数。按任意键继续 。. . ***样本输出结束***

感谢您的帮助,我真的只是不了解重载,但我想我将能够找出对象和所有其他有趣的东西。

0 投票
1 回答
96 浏览

java - List 的类属性类型,访问者不可修改

考虑以下类:

我不想bar这样修改:

相反,我想强制执行我自己的add()程序。
有没有办法做到这一点?

0 投票
2 回答
1597 浏览

c++ - 在类中改变私有向量的最佳方法

我有一个关于更好的编程实践的问题。说,我有以下课程:

我有私有向量data_和访问器/修改器函数。operator=在公共场合使用data_非常方便。但是,我需要将其设为data_私有并通过成员函数对其进行访问/变异。但我不确定构造 mutator 函数的最佳方法。到目前为止,我最好的方法是示例中的方法。有什么建议么?

0 投票
1 回答
201 浏览

c++ - 使用运算符作为 mutator 方法

我正在研究书中的一个示例,他们在类定义中为我们提供了原型(我认为它被调用了!),然后他们希望我们像在类的 cpp 文件中那样定义方法。我在理解 mutator 方法时遇到了麻烦,特别是在这种情况下使用运算符。当你让他们成为班级的“朋友”时更有意义,但在这种情况下他们没有。我似乎无法弄清楚它会如何表现。任何帮助都会很棒!

类类型为“邮件”:

它们的重点是稍后在我们创建对象 mailItem1 时,我们希望将其添加到它的属性之一(重量)

我知道您不一定需要查看所有内容,但这是整个班级。

我很困惑它是如何工作的,并希望得到一些帮助。谢谢!

0 投票
1 回答
853 浏览

laravel - Eloquent 的默认 $attributes 不会发生变异

似乎 $attributes 属性中定义的默认值在保存到数据库之前没有被改变?

我有这个设置:

我得到的只是数据库字段,里面填满了字面上的“数组”和一个 preg_replace 错误。在重写save()方法中指定默认属性后,它确实会发生突变。

任何人都可以确认这一点和/或有建议吗?

谢谢。

0 投票
1 回答
470 浏览

java - 突变器方法不起作用,NetBeans

我尝试更改的值,coupe但输出没有改变。在 NetBeans 中,我将这两个程序保存在同一个项目和包下。我没有在这里包含它,因为它可能使代码太长,但我也编写了可以正常工作的访问器方法,所以我对为什么 mutator 方法不起作用感到困惑。

班级代码:

客户端类代码:

0 投票
2 回答
149 浏览

java - Mutator 方法不存储我刚刚创建的类的值?

这是课程:

这是程序:

对于这个项目,我只是试图以不同的方式将值存储到构造函数中。但是,我的输出显示我的 mutator 方法没有存储任何值。我试图发布我的输出,但我没有声誉积分。基本上,我尝试参数的所有值都说为零或空。

0 投票
1 回答
83 浏览

java - 为什么我的变量包含“2122”而不是“2322”?

这是考试中的一道题。幸运的是我选择了正确的答案,但我仍然不明白为什么它是正确的。

考虑这个程序:

它会打印出来2122。但是,我希望2322(运行代码时我显然错了)。我的理由是:

在 main 方法的第三行,D初始化了四个 get 实例。的构造函数D创建 的新实例C。的实例C有一个String变量,该变量指向内存中的某个点。现在对象的实例变量c,我们称之为它c3d[1]有一个实例变量(类型String),我们称之为它,指向与 的变量s3相同的内存。String s1c1

所以当我们改变时s1,我希望 的值s3也会改变,因为它指向内存中的同一个点。

附带说明一下,如果您更改 的构造函数D,请参见下文,您将得到2322相反的结果。这是我所期望的,因为现在变量c3ind[1]直接指向c1.

到目前为止我对解释的想法(可能是错误的):

  1. 初始化实例变量s1/s3时,会生成新String对象(到目前为止,我假设它们指向池中"1"String因为构造函数C使它看起来那样)
  2. 更改时s1,它的指针将被重定向到"3"池中String。而不是"1"成为"3"游泳池。

谁能解释这种行为?我的(错误的)推理中有什么错误?