这两行代码 没有理解

这两行代码 没有理解

http://img1.sycdn.imooc.com//climg/5e78e3200846952015180889.jpg

//创建类BallTest
public class BallTest {
  // 创建成员内部类Inner_m
  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 two = new Inner_f();
		 two.play();
       
  }
	// 定义一个方法void playBall(Ball ball),调用play()方法
  public void playBall(Ball ball){
      ball.play();
  }
}
//测试类
public class Test {

  public void getTest(Ball ball){
      ball.play();
  }
  public static void main(String[] args) {
		//完成成员内部类内部测试
		BallTest ball=new BallTest();
		BallTest.Inner_m one=new BallTest().new Inner_m();
		 one.play();
		//完成方法内部类测试
	    

		ball.info();
		//完成匿名内部类测试
	    Test test=new Test();
	    test.getTest(new Ball(){
	         public void play(){
	        System.out.println("*****************");
          System.out.println("匿名内部类");
          System.out.println("打排球");
	         }
	        });
	}

}

我自己写完是没有方法内部类中的内容的,看了别人的答案才添了那两行代码,老师能讲一下那两行的意义吗?

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

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

1回答
好帮手慕小琪 2020-03-24 14:32:04

同学你好,我们作业代码中方法内部类的执行过程是:在我们执行ball.info()时,才会进入info()方法,先执行这两行代码。这两行代码的意义在于实例化方法内部类对象,及调用方法内部类play()方法。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕嘟嘟 #1
    是先写好,到时候调用时候直接就能用是这样吗?如果我不想在这里写,想在Test类中写可以吗?怎么实现?课程中只讲了要return new Heart().beat();,这道题中不太会使用
    2020-03-24 22:20:25
  • 好帮手慕小琪 回复 提问者 慕嘟嘟 #2
    同学你好, 1.是的,先写好直接调用即可。 2.不可以在Test类中写,因为方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。老师在课程中讲的也是在方法内部类中进行实例化。 如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
    2020-03-25 10:16:14
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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