如何从另一个JAVA类访问变量
因此,我正在开发一个程序来模拟一个采集系统,主系统接收项目,但有不同类型的项目,如需要id检查的项目等。。。我使用一个多态方法来访问这些不同的类,但是我是否可以根据访问另一个类的方法中发生的情况更改主类中的变量 例: 假设我必须为所有非批量项目保留集合的预期权重,并且在itemCollection类中有一个名为bulk的变量,那么我如何使用该项目不是批量的事实呢。我可以从多态的AlgolItem类方法中更改AlgolItem类中itemCollection的批量变量吗 如何从另一个JAVA类访问变量 通常情况下,您希望避免这种情况,并支持用于这种情况的方法:getter用于检索值,setter用于从其他类的对象中设置值 我可以从多态的AlgolItem类方法中进行操作吗 我是否可以从Item更改itemCollection的批量变量 上课 添加批量项目并不意味着所有项目都是批量项目。您应该对如何从另一个JAVA类访问变量,java,oop,object,Java,Oop,Object,因此,我正在开发一个程序来模拟一个采集系统,主系统接收项目,但有不同类型的项目,如需要id检查的项目等。。。我使用一个多态方法来访问这些不同的类,但是我是否可以根据访问另一个类的方法中发生的情况更改主类中的变量 例: 假设我必须为所有非批量项目保留集合的预期权重,并且在itemCollection类中有一个名为bulk的变量,那么我如何使用该项目不是批量的事实呢。我可以从多态的AlgolItem类方法中更改AlgolItem类中itemCollection的批量变量吗 如何从另一个JAVA类访问
ItemCollection
中的bulk
字段给出明确的语义
关于更新集合中无散装物品的重量,我会以另一种方式进行操作,因为物品的集合取决于物品:在集合中添加物品时,检查物品是否散装,如果不是:根据更新集合的重量。通常,您希望尽可能避免类/对象之间的双向耦合。
您还应该在item类/接口中定义一个
boolean isBulk()
方法
在ItemCollection
类中,add()
public void add(Item item){
if (!item.isBulk()){
weight += item.getWeight();
}
else{
bulk = item.isBulk(); // as discussed check the relevance of this flag.
}
// ...
}
您可能想发布更多的代码,最好是一个小型的自包含的代表性程序代码。这将有助于更好地理解您的问题。如果类ItemCollecion中有一个名为“bulk”的变量,则从另一个类引用它必须声明为public,否则ItemCollection必须有一个public getter for bulk,该getter返回其值bulk=bulk代码>是一个毫无用处的语句。@FredK当然。我对这个领域的意义不是很有信心,我可能把这部分搞砸了。
public void add(Item item){
if (!item.isBulk()){
weight += item.getWeight();
}
else{
bulk = item.isBulk(); // as discussed check the relevance of this flag.
}
// ...
}