所以我正在为一个类“Skill”编写代码,该类将被另一个类“Calculator”调用。 Skill 类通过调用其方法影响 Calculator 的当前实例。
public class Calculator {
int number = 0;
...
Skill sk = new Skill();
sk.hitSkill(true);
...
public void setNumber(int newValue) {
number += newValue;
}
}
同时,“技能”类看起来像这样:
public class Skill {
Calculator calc = new Calculator();
public void hitSkill (boolean someConditions) {
if (someConditions) {
calc.setHitNumber(20);
}
}
以上对我没有好处,因为“calc”是一个实例,但不是我想受影响的 calc 实例。
我有 Skill 会使用的计算器的 getter 和 setter - 但它需要一个 Calc 实例才能工作。准确地说,它需要调用它的 Calculator 实例,而不仅仅是任何 Calculator 实例。
为什么我不直接将计算器方法设为静态?因为它们会影响我需要能够更改的变量,这些变量不是静态的。
有人有什么建议吗?
最佳答案
代替 new Calculator()
,为采用 Calculator
参数的 Skill
创建一个构造函数。
public class Skill {
private Calculator calc;
public Skill(Calculator calc) { this.calc = calc; }
}
public class Calculator {
private Skill sk = new Skill(this);
}
关于Java - 为尚未实例化的类编写代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47046644/