在Java中设置一个类中另一个类的变量
我的主课有两个班(我们称它们为A班和B班) 是否有机会在classB中设置classA变量 诸如此类:在Java中设置一个类中另一个类的变量,java,class,variables,Java,Class,Variables,我的主课有两个班(我们称它们为A班和B班) 是否有机会在classB中设置classA变量 诸如此类: class classB { int indexB; classB() { indexB = 0; classA.index = indexB; } } class classA { int index; classA() {} // OR classA(int index) { thi
class classB {
int indexB;
classB() {
indexB = 0;
classA.index = indexB;
}
}
class classA {
int index;
classA() {}
// OR
classA(int index) {
this.index = index;
}
}
class classB {
int indexB;
classA classA;
classB() {
indexB = 0;
classA = new classA();
classA.index = indexB;
// OR
classA = new classA(indexB);
}
}
多谢各位!
问候语是,您可以像在代码片段中那样直接分配
classA
的公共
变量,或者为私有
变量声明一个setter-
classA
public setIndex(int index) {
this.index = index;
}
classB
classAInstance.setIndex(indexB);
是的,这是可能的。假设类
classA
的index
也受包保护,并且classA
与classB
位于同一个包中,则可以执行以下操作:
class classB {
int indexB;
classB() {
indexB = 0;
classA.index = indexB;
}
}
class classA {
int index;
classA() {}
// OR
classA(int index) {
this.index = index;
}
}
class classB {
int indexB;
classA classA;
classB() {
indexB = 0;
classA = new classA();
classA.index = indexB;
// OR
classA = new classA(indexB);
}
}
如果两个类都在不同的包中,那么您需要一个公共setter,用于classA
中的index
,如ssantos所示(我展示的第二种方法,使用构造函数,在这种情况下也会起作用,如果构造函数是公共的)
但是,直接访问其他类的成员不是很好。请使用GETTER和SETTER,也请考虑java命名约定:类应该从大写字母开始,因此<代码> ClassA < /C> >和<代码> ClassB < /C> > < /P> < P>索引必须是A类的静态变量。然后您可以这样做。在你的问题中使用一个标记并提及它。你真的是指“在你的主要课堂上”吗?我想你指的是源文件中的.java文件。您可能正在使用内部类,但这是一种更高级的技术。@geomanagas:
java
标记为question@rkp是的,但是看看他评论上的时间戳,然后看看编辑历史。他发表这一评论时,它没有被贴上标签。请注意。是的,但它需要是一个实例(如上所述),或者您需要声明变量static,但这不是很像OOP。