public class Number {
private int j;
public Number(){
j = 3;
}
public Number(int m){
j = m;
}
public void SetNum(int n){
j = n;
}
public int GetNum(){
return j;
}
}
///(不同的文件,同一目录)
public class User {
private Number jim;
public User(){
this.jim = new Number();
}
public static void main(String []args){
User keith = new User();
User justin = new User();
??????????????????????????
}
}
我想要keith.jim = justin.jim
和justin.jim = keith.jim
。如果我keith.jim.SetNum(34)
,则keith
和justin's
jim.j
都将为34
。怎么做?这个想法将在更大的代码中实现。
此外,user.java
和Number
。java必须存在。上下文不能改变,我可以添加新方法,但我不能改变Number
中的上下文(E.G将j放在用户而不是Number中)。每个用户都必须有一个每个用户都引用的数字对象。
答案 0 :(得分:2)
其他人建议只创建一个User
对象。另一种方法是拥有两个User
个对象,但对jim
字段的值具有相同的引用:
User keith = new User();
User justin = new User();
justin.jim = keith.jim;
如果您有其他字段keith
和justin
需要不同,这将非常有用,但jim
字段的值所引用的对象的任何更改都必须是两者都看到了。
这些都是有效的选项,具体取决于您的要求。
但有几点:
这意味着justin.jim
的原始值,因为没有意义;你可以考虑添加一个User
构造函数,对该字段的初始值采用Number
引用,允许你写:
User justin = new User(keith.jim);
Number
课程重命名为<{1}}中的不是(或java.lang
等,如果可能的话) java.util
和getValue
。答案 1 :(得分:1)
试试这个
User keith = new User();
User justin = keith;
答案 2 :(得分:0)
User keith = new User();
User justin = keith;
现在两者都会引用同一个对象, keith 中的任何更改都会反映到 justin ,因为两者都指的是同一个对象。