任务
一、任务分析
1.创建接口Ball
- 包含抽象方法play()
2.创建外部类BallTest
- 定义方法void playBall(Ball ball),调用接口中的play()方法
3.分别通过成员内部类、方法内部类以及匿名内部类完成接口实现
- 在BallTest中,创建成员内部类Inner_m实现接口Ball,在类中重写play()方法,输出两条信息,分别为"成员内部类:"和"打篮球"
- 在BallTest中,创建成员方法info(),在方法中创建方法内部类Inner_f实现Ball接口,重写play()方法,输出三条信息,分别为"**************”、“方法内部类:”和"打乒乓球"
- 在BallTest中,创建成员方法info(),在方法中创建方法内部类Inner_f实现Ball接口,重写play()方法,输出三条信息,分别为"**************","方法内部类:"和"打乒乓球"
4.创建测试类Test,通过创建BallTest类及相关内部类实例,调用相关方法,依次完成相关内部类测试。
二、实现代码
1.Ball.java(接口)
public interface Ball {
void play();
}
2.BallTest.java
public class BallTest {
public void playBall(Ball ball) {
ball.play();
}
//成员内部类
public Inner_m getInner_m() {
return new Inner_m();
}
public void play() {
}
public class Inner_m implements Ball{
public void play() {
// TODO Auto-generated method stub
System.out.println("成员内部类");
System.out.println("打篮球");
}
}
//方法内部类
public Ball info() {
class Inner_f implements Ball {
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("*************");
System.out.println("方法内部类:");
System.out.println("打乒乓球");
}
// public void play() {
// System.out.println("*************");
// System.out.println("方法内部类:");
// System.out.println("打乒乓球");
// }
}return new Inner_f();
// return new Inner_f().play();
}
// 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("打乒乓球");
// }
// }
// }
// }
//public void playBall(Ball ball) {
// ball.play();
//}
}
3.Test4.java
public class Test4 {
public void getPlay(BallTest balltest) {
balltest.play();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//成员内部类对象实例,方式1:new 外部类.new 内部类
// BallTest.Inner_m one=new BallTest().new Inner_m();
// one.play();
//成员内部类对象实例, 方式2:外部类对象.new 内部类
BallTest bt1=new BallTest();
// Inner_m two=bt1.new Inner_m();
// two.play();
//成员内部类对象实例, 方式3:外部类对象.获取方法
Inner_m three=bt1.getInner_m();
three.play();
//方法内部类
//Test4 t4=new Test4();
BallTest bt2=new BallTest();
Ball ball=bt2.info();
ball.play();
Test4 four=new Test4();
four.getPlay(new BallTest() {
public void play() {
System.out.println("***************");
System.out.println("匿名内部类");
System.out.println("打排球");
}
});
}
}
4.运行图片