Java小练习--分别通过成员内部类、方法内部类、匿名内部类完成接口Ball,在测试类BallTest中的调用

分别通过成员内部类、方法内部类、匿名内部类完成接口Ball,在测试类BallTest中的调用。

任务

任务分析:
1.创建接口Ball

  • 包含抽象方法play( )

2创建外部类BallTest

  • 定义方法 void playBall(Ball ball),调用接口中的play( )方法

3.分别通过成员内部类、方法内部类以及匿名内部类完成接口实现

  • 在BallTest中,创建成员内部类Inner_m 实现接口Ball,在类中重写play()方法,输出两条信息,分别为"成员内部类:"和"打篮球*
  • 在BallTest中,创建成员方法info),在方法中创建方法内部类Inner f实现Ball接口,重写play()方法,输出三条信息,分别为"**********”,"方法内部类:"和“打乒乓球"
  • 在测试类Test中通过匿名内部类实现接口Ball,并重写play()方法,输出两条信息,分别为“***************”,"匿名内部类:"和"打排球"

4.创建测试类Test,通过创建BallTest类及相关内部类实例,调用相关方法,依次完成相关内部类测试。

运行效果参见效果图

思路分析

成员内部类对象实例3种方式

// 成员内部类对象实例,方式1:new 外部类.new 内部类

BallTest.Inner_m one = new BallTest().new Inner_m();

// 成员内部类对象实例,方式2:外部类对象.new 内部类

BallTest bt = new BallTest();

Inner_m two = bt.getInner_m();

two.play();

// 成员内部类对象实例,方式3:外部类对象.获取方法

Inner_m three = bt.getInner_m();

three.play();


代码实现

Ball.java

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

BallTest.java

public class BallTest {

	// 调用接口中的play方法
	public void playBall(Ball ball) {
		ball.play();
	}

	public Inner_m getInner_m() {
		return new Inner_m();
	}

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

	// 方法内部类
	public Ball info() {
		class Inner_f implements Ball {
			@Override
			public void play() {
				// TODO Auto-generated method stub
				System.out.println("***************");
				System.out.println("方法内部类:\n打乒乓球");
			}
		}
		return new Inner_f();
	}

}

Test.java

public class Test {

	public static void main(String[] args) {

		// 完成成员内部类测试
		BallTest.Inner_m one = new BallTest().new Inner_m();
		one.play();

		// 完成方法类测试
		BallTest two = new BallTest();
		Ball ball = two.info();
		ball.play();

		// 完成匿名内部类测试
		BallTest three = new BallTest();
		three.playBall(new Ball() {
			@Override
			public void play() {
				// TODO Auto-generated method stub
				System.out.println("***************");
				System.out.println("匿名内部类:\n打排球");
			}
		});

	}
}

输出结果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值