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

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

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

MM们 2019-11-29 09:10:31
我试图尽可能简化我的困境。我有三节课:Α: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 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

您需要以某种方式为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-29
?
慕神8447489

TA贡献1780条经验 获得超1个赞

方法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-29
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您需要在Alpha类或其方法中创建Beta类型的对象


就像您在主Beta中所做的一样cBeta = new Beta();


如果要使用在Main中创建的变量,则必须通过使Alpha构造函数看起来像这样将其解析为cAlpha作为参数


public class Alpha 

{


    Beta localInstance;


    public Alpha(Beta _beta)

    {

        localInstance = _beta;

    }



     public void DoSomethingAlpha() 

     {

          localInstance.DoSomethingAlpha();     

     }

}


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

添加回答

举报

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