我有2个班级A和B。
class A implements Constants{
private int state; } class B implements Constants{ foo(){ //want to set state variable of class A like this state = state1 } } interface Constants{ public final int state1; public final int state2; }
private int state;
} class B implements Constants{ foo(){ //want to set state variable of class A like this state = state1 } } interface Constants{ public final int state1; public final int state2; }
private int state;
} class B implements Constants{ foo(){ //want to set state variable of class A like this state = state1 } } interface Constants{ public final int state1; public final int state2; }
我不想在B类中有A类的实例。我该怎么做? 如果我有一个在接口中设置变量的函数,则两个类都必须实现此函数。 那是错的吧? 因为然后相同功能的2个定义会冲突?
在Java中没有什么叫做函数。 他们是方法。
您可以在类中具有getter和setter,以便从外部类设置和获取属性。
您的问题不清楚。
如果您的B类扩展了A类,则可以通过B类的构造函数来设置作为超类的A类的属性。
希望能帮助到你!
您通常希望避免在类中尝试编写任何试图更改另一个类的内部状态的方法。 无论您想出什么技巧来完成这样的事情,您都在破坏封装的原理,这就是首先使用类的全部原因。
如果希望从多个类中访问某些状态,我建议将该状态分解为自己的类,并让两个类中的每一个都通过getter / setter或实用程序方法与之交互。