在Java中设置一个类中另一个类的变量

在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

我的主课有两个班(我们称它们为A班和B班)

是否有机会在classB中设置classA变量

诸如此类:

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。