0

我的主班有两个班(我们称它们为classA和classB)。

有没有机会在 classB 中设置 classA 变量?

像这样的东西:

class classB {
    int indexB;

    classB() {
        indexB = 0;
        classA.index = indexB;
    }
}

非常感谢!问候

4

3 回答 3

1

的,您可以像在代码段中那样直接分配public变量,或者为变量classA声明一个设置器。-private

A类

public setIndex(int index) {
    this.index = index;
}

B类

classAInstance.setIndex(indexB);
于 2013-10-13T11:00:55.327 回答
0

对的,这是可能的。假设index该类classA也是包保护的,并且classA在同一个包中,classB那么您可以执行以下操作:

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);
    }
}

如果这两个类都在不同的包中,那么你需要一个公共设置器indexclassA如 ssantos 所示(我展示的第二种方法,使用构造函数,在这种情况下也可以工作,因为构造函数是公共的)。

然而,直接访问其他类的成员并不是很好。请为此使用 getter 和 setter,还请考虑 java 命名约定:类应以大写字母开头,因此ClassAand ClassB

于 2013-10-13T11:14:56.487 回答
0

索引必须是 A 类的静态变量。然后你可以这样做。

于 2013-10-13T11:18:41.023 回答