为了账号安全,请及时绑定邮箱和手机立即绑定

Java:如何从另一个类访问方法

Java:如何从另一个类访问方法

萧十郎 2019-11-13 15:04:39
我试图尽可能简化我的困境。我有三节课:Α: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()?
查看完整描述

3 回答

?
慕村225694

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。起初,变量作用域很复杂,但是一经掌握,它会变得更加容易。让我知道您是否还有其他问题!


查看完整回答
反对 回复 2019-11-13
?
Qyouu

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();  //?

     }

}

顺便说一下,这是作业吗?


查看完整回答
反对 回复 2019-11-13
?
明月笑刀无情

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());


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 394 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信