为什么无法调用方法内部类

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
杨勤_cd 2018-07-26 20:05:34

看了很久也没有看出方法内部类有什么问题,不知道为啥你的ba调不到info()方法…………

qq_温书_0 2018-07-13 20:59:42

你思路有错,直接调用方法内部类的这个方法就可以撒。下面是我的,你可以参考一下

//创建类BallTest
public class BallTest {
  // 创建成员内部类Inner_m
public class Inner_m implements Ball{
  public void play(){
      System.out.println("成员内部类:");
      System.out.println("打篮球");
  }
}

	// 创建方法内部类
public void info(){
  class Inner_f implements Ball{
      public void play(){
          System.out.println("**********************");
          System.out.println("方法内部类:");
          System.out.println("打乒乓球");
      }
      
  }
  Inner_f inner_f=new Inner_f();
  inner_f.play();//注意这里我已经对这个类进行了实现
  //return new Inner_f().play();
}

	// 定义一个方法void playBall(Ball ball),调用play()方法
public void playBall(Ball ball){
  ball.play();
      
  }
}


//测试类
public class Test {

  public static void main(String[] args) {
		//完成成员内部类内部测试
		BallTest ba=new BallTest();
		BallTest.Inner_m my=ba.new Inner_m();
		my.play();
		//完成方法内部类测试
		ba.info();
		//完成匿名内部类测试
	ba.playBall(new Ball(){
	public void play(){
	    System.out.println("**********************");
	}
	    
	}
	    );
	    ba.playBall(new Ball(){
	        public void play(){
	            System.out.println("匿名内部类:");
	            System.out.println("打排球");
	        }
	        
	    }
	        );

}
}


好帮手慕雪 2018-06-05 13:48:01

类似于第8行,可以ba.new Inner_m( )的。new 不能少。祝:学习愉快

  • 提问者 Bohemian_Yoke #1
    我要调用是方法内部类,不是普通内部类
    2018-06-05 13:51:25
  • 提问者 Bohemian_Yoke #2
    能不能发图,这样我理解不了
    2018-06-05 13:52:04
  • 好帮手慕雪 回复 提问者 Bohemian_Yoke #3
    BallTest.Inner_m two=ba.new Inner_m( );two.play();
    2018-06-05 14:00:55
提问者 Bohemian_Yoke 2018-06-05 13:34:07

public class BallTest{

 public void palyIBall(IBall iball){

 iball.play();

 }

      public Inner_m getinner_m(){

     return new Inner_m();

      }

      public class Inner_m implements IBall{


@Override

public void play() {

// TODO Auto-generated method stub

System.out.println("成员内部类:");

System.out.println("打篮球");

}

      public void info(){

     class Inner_f implements IBall{


@Override

public void play() {

// TODO Auto-generated method stub

System.out.println("*********************");

System.out.println("方法内部类:");

System.out.println("打乒乓球");

}

     

     }

    new Inner_f().play();

      }

      }

}


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师