2013-10-13 36 views
0

我在我的主类中有两个类(让我们称它们为classA和classB)。在Java中设置另一个类的变量

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

类似的东西:

class classB { 
    int indexB; 

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

非常感谢你! 问候

+0

请指定语言,使用标签并在您的问题中提及它。 – geomagas

+0

你真的是指“在你的主班”吗?我认为你的意思是在你的源文件中 - .java文件。你可能正在使用内部类,但这是一种更先进的技术。 –

+0

@geomanagas:'java'被标记为问题 –

回答

1

,您可以直接分配的classApublic变量,你在你的片段一样,或声明制定者private variables.-

CLASSA

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

CLASSB

classAInstance.setIndex(indexB); 
+0

是的,但它需要是一个实例(如上面所暗示的),或者你需要声明变量static,但这不是非常像OOP的。 –

0

是的,这是可能的。假设类classAindex也包保护,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); 
    } 
} 

如果这两个类在不同的包你,那么你需要index公共二传手在classA中,如ssantos所示(我已经展示的第二种方法,使用构造函数,在这种情况下它也能工作,它的构造函数是公开的)。

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

0

该索引必须是A类的静态变量。然后您可以执行此操作。

相关问题