gpt4 book ai didi

java - 有效地根据属性 B 和 C 初始化属性 A

转载 作者:行者123 更新时间:2023-11-29 05:26:39 24 4
gpt4 key购买 nike

public abstract class SuperClass {
public int x, y;
public int z = x + y;
}

SuperClass 的每个子类都应该有属性 x、y 和 z。但是,虽然所有子类的 x 和 y 可能不同,因此必须手动启动,但我如何巧妙地启动 z?即我不想在 SuperClass 的每个子类中调用 z = x + y

最佳答案

使 x 成为 y protected 或通过适当的 getter 和 setter 方法使它们对子类可用。否则子类将看不到它们。
要初始化 z,您可以在 SuperClass 的构造函数中设置它,例如:

Superclass(int x, int y)
{
this.x = x;
this.y = y;
this.z = x + y;
}

然后在继承类的构造函数中使用 super(x,y) 来调用 SuperClass 的构造函数。

现在是关于初始化它们...我不知道,你想要实现什么,但是如果你想更改 xy 以便 z 始终保持为 x + y,您必须手动执行此操作。实现此目的的一种方法是在 xy 的设置方法中计算 z。

编辑:
对应的setter:

void setX(int x)
{
this.x = x;
z = x + y;
}

void setY(int y)
{
this.y = y;
z = x + y;
}

关于java - 有效地根据属性 B 和 C 初始化属性 A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22442994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com