我试图尽可能简化我的困境。我有三节课:
Α:
public class Alpha {
public void DoSomethingAlpha() {
cbeta.DoSomethingBeta() //?
}
}
Beta:
public class Beta {
public void DoSomethingBeta() {
// Something
}
}
主要:
public class MainApp {
public static void main(String[] args) {
Alpha cAlpha = new Alpha();
Beta cBeta = new Beta();
}
}
我希望我不要过分简化。我的问题是如何从Alpha中的方法访问cBeta.DoSomethingBeta()?
您需要以某种方式为Alpha类提供对cBeta的引用。有三种方法可以做到这一点。
1)在构造函数中为Alphas提供Beta。在Alpha课堂上写道:
public class Alpha {
private Beta beta;
public Alpha(Beta beta) {
this.beta = beta;
}
并从main()调用cAlpha = new Alpha(cBeta)
2)给Alphas一个变种,使其具有beta。在Alpha课堂上写道:
public class Alpha {
private Beta beta;
public void setBeta (Beta newBeta) {
this.beta = beta;
}
并调用cAlpha = new Alpha(); cAlpha.setBeta(beta); 从main(),或
3)将beta作为doSomethingAlpha的参数。在Alpha类中写道:
public void DoSomethingAlpha(Beta cBeta) {
cbeta.DoSomethingBeta()
}
您使用哪种策略取决于几件事。如果您希望每个Alpha都具有Beta,请使用数字1。如果只希望某些Alpha具有Beta,但是您希望它们无限期地保留其Beta,请使用数字2。如果您希望Alpha仅处理Betas,请使用数字2。在调用doSomethingAlpha时,请使用数字3。起初,变量作用域很复杂,但是一旦掌握了它,它就会变得更加容易。让我知道您是否还有其他问题!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句