gpt4 book ai didi

Java类的继承组织

转载 作者:行者123 更新时间:2023-12-02 00:09:18 24 4
gpt4 key购买 nike

我很难找到我需要的东西,也不知道如何索取它,所以请考虑这一点:

public class Environment {
int x = 0;
int y = 0;
Operations op = new Operations();

public Environment(){
Operations.changeSuper();
}
}

和:

public class Operations extends Environment {
public void changeSuper(){
x++;
y--;
}
}

这是我已经尝试过的简单表示。但是我认为初始化环境中的操作不正确,因为它会导致构造函数循环。但如果我不这样做,那么当我尝试调用changeSuper()时我会得到空指针。

这是使用扩展的正确方法吗?是否有更好的方法从类文件中抽象方法。

长话短说,我想将方法​​移出类文件,但仍然允许它们影响它的局部变量

最佳答案

环境不是操作..所以不是。听起来你需要作曲。你应该让你的类Operation而不是Operations

所以有这样的东西:

public class Environment {
int x = 0;
int y = 0;
Operation op ;

public Environment(){
op=new Operation(this);

}

public void changeEnvironment() {}
public void incrementX(){}
public void incrementY() {}
}

和:

public class Operation   {
Environment e;
public Operation(Environment e){
this.e = e;
e.incrementX();
e.decrementY();
}
public void changeEnvironment()
{
e.changeEnvironment() ;
}
}

如果更改仅在环境中完成,那么它会使维护更容易,同时也保留了封装。

关于Java类的继承组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13187434/

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