怎么使用方法内部类

怎么使用方法内部类

test 文件

package com.imooc.prcttest610;

import com.imooc.prcttest610.BallTest.Inner_m;

//测试类
public class Test {

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

}
package com.imooc.prcttest610;

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

	// 创建方法内部类
  public Object info(){
      class Inner_f implements Ball{
          public void play(){
	          System.out.println("*****************");   
	          System.out.println("方法内部类:");
	          System.out.println("打乒乓球");
          }
      }
      return new Inner_f();
  }
  
	// 定义一个方法void playBall(Ball ball),调用play()方法
  public void playBall(Ball ball){
      ball.play();
  }
}
package com.imooc.prcttest610;

//接口Ball
public interface Ball {
  //创建抽象方法play():void
  public abstract void play(); 
}

使用方法类调用时出现一串字符串码,是怎么回事呢?该如何修改

正在回答

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

2回答

同学输出的一串字母是方法内部类的地址,作业要求是通过方法内部类输出play()方法;

调用方法内部类时,应该是这样书写:
http://img1.sycdn.imooc.com//climg/5bf382ee0001869505460283.jpg

在测试类中,直接通过bt.info()完成调用即可~

祝学习愉快!

  • 慕仙哈哈哈 提问者 #1
    这是因为play的返回值是void才将info方法返回值设置为void吗?
    2018-11-20 16:52:12
  • chrismorgen 回复 提问者 慕仙哈哈哈 #2
    是的同学,可以这么理解。祝学习愉快~
    2018-11-20 17:51:17
提问者 慕仙哈哈哈 2018-11-20 16:52:47

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

请问课程中这个是Object是因为内部类既有beat返回的是String,也有void类型的方法吗?

  • Object是超类,你可以理解成是所有类的父类,所以他可以接收任何类型,因为beat方法返回值是String类型的数据,String的父类也是Object,所以可以使用Object,跟有void是没有关系的哦,祝学习愉快~​
    2018-11-20 18:09:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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