3 回答
TA贡献1880条经验 获得超4个赞
您需要以某种方式为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。起初,变量作用域很复杂,但是一经掌握,它会变得更加容易。让我知道您是否还有其他问题!
TA贡献1786条经验 获得超11个赞
方法1:
如果DoSomethingBeta方法是静态的,则只需调用:
Beta.DoSomethingBeta();
方法2:
如果Alpha从Beta开始扩展,则可以直接调用DoSomethingBeta()。
public class Alpha extends Beta{
public void DoSomethingAlpha() {
DoSomethingBeta(); //?
}
}
方法3:
另外,您需要访问Beta实例才能从中调用方法。
public class Alpha {
public void DoSomethingAlpha() {
Beta cbeta = new Beta();
cbeta.DoSomethingBeta(); //?
}
}
顺便说一下,这是作业吗?
TA贡献1828条经验 获得超4个赞
public class WeatherResponse {
private int cod;
private String base;
private Weather main;
public int getCod(){
return this.cod;
}
public void setCod(int cod){
this.cod = cod;
}
public String getBase(){
return base;
}
public void setBase(String base){
this.base = base;
}
public Weather getWeather() {
return main;
}
// default constructor, getters and setters
}
另一堂课
public class Weather {
private int id;
private String main;
private String description;
public String getMain(){
return main;
}
public void setMain(String main){
this.main = main;
}
public String getDescription(){
return description;
}
public void setDescription(String description){
this.description = description;
}
// default constructor, getters and setters
}
//访问方法
//成功!
Log.i("App", weatherResponse.getBase());
Log.i("App", weatherResponse.getWeather().getMain());
Log.i("App", weatherResponse.getWeather().getDescription());
添加回答
举报