一、实验目的
掌握内部类、匿名类的设计思想,作用
二、实验内容
三大体育媒体互联网平台,由于资源独占,有些类别的运动只能在某个平台上进行独播;
足球赛事只能在平台A上进行独播,篮球赛事只能在平台B上进行独播,排球赛事只能在平台C上进行独播,其他赛事可以在几个平台上进行直播;
三、实验要求
三个体育直播平台EA、EB、EC设计为三个类
设计一个体育赛事的类 SportsGame
三个赛事设计为体育赛事的三个子类,分别作为三个平台的内部类
其他羽毛球、乒乓球等赛事设计为普通的类,继承自体育赛事
可以根据不同赛事的特点,为其设计内部的成员变量和成员函数
利用匿名类新增其他的体育赛事
在main函数中进行测试
增加比赛规则接口 IRule,令所有的体育赛事实现该接口,重新制定各自的比赛规则
则,可以写代码为(代码中需要建立多个类,不是全部复制就可以运行):
//创建类EA
public class EA {
public void showE () {
System.out.println("欢迎来到体育赛事平台A!");
System.out.println("精彩的足球赛事重磅来袭,敬请期待!");
Football_Game football_game = new Football_Game();
football_game.show();
football_game.setTules();
}
//内部类
class Football_Game extends SportsGame implements IRule{ //足球赛事
String name = "世界杯";
public void show() {
System.out.println("欢迎来到"+name+"!");
}
@Override
public void setTules() {
System.out.println("时间规则:比赛分为两个半场,一个半场45分钟,中场休息15分钟!");
System.out.println("常见犯规动作:越位、手球!");
}
}
}
//创建类EB
public class EB {
public void showE () {
System.out.println("欢迎来到体育赛事平台B");
System.out.println("精彩的篮球赛事重榜来袭,敬请期待!");
BasketBall_Game basketBall_game = new BasketBall_Game();
basketBall_game.show();
basketBall_game.setTules();
}
//内部类
class BasketBall_Game extends SportsGame implements IRule{
String name = "NBA";
public void show() {
System.out.println("欢迎来到"+name+"!");
}
public void setTules() {
System.out.println("时间规则:全场比赛48分钟,分为 四节,单节12分钟,中场休息10分钟!");
System.out.println("常见违规动作:限制区3秒违例、带球8秒违例、进攻24秒违例等");
} //篮球赛事
}
}
//创建类EC
public class EC {
public void showE () {
System.out.println("欢迎来到体育赛事平台C");
System.out.println("精彩的排球赛事重磅来袭,敬请期待!");
ValleyballGame valleyballGame = new ValleyballGame();
valleyballGame.show();
valleyballGame.setTules();
}
//内部类
class ValleyballGame extends SportsGame implements IRule{
String name = "排球赛!";
public void show() {
System.out.println("欢迎来到"+name+"!");
}
public void setTules() {
System.out.println("比赛规则:比赛采用五局三胜制,前四局每局25分。第五局每局15分!");
System.out.println("常见违规动作:发球违规、拦网犯规、后排队员进攻性击球犯规!");
} //排球赛事
}
}
//创建类IRule
public interface IRule {
public void setTules();
}
//创建类Banminton_Game
public class Banminton_Game extends SportsGame{
String name = "羽毛球世锦赛";
public void show() {
System.out.println("欢迎来到"+name+"!");
System.out.println("本次赛事包含男单、男双、女单、女双和混双!");
System.out.println("精彩纷呈,我们不见不散!");
}
}
//创建类Ping_PangBall_Game
public class Ping_PangBall_Game extends SportsGame{
String name = "休斯顿乒乓球世锦赛";
public void show() {
System.out.println("欢迎来到"+name+"!");
System.out.println("本次赛事包含男单、男双、女单、女双和混双!");
System.out.println("精彩纷呈,我们不见不散!");
}
}
//创建类SportGame
public class SportsGame {
String name; //赛事名字
public void show() {
System.out.println("欢迎来到"+name+"!");
}
}
//创建类Main_Test
package shiyan8;
import java.util.*;
public class Main_Test {
public static void main(String[] args) {
EA ea = new EA();
ea.showE();
System.out.println();
EB eb = new EB();
eb.showE();
System.out.println();
EC ec = new EC();
ec.showE();
System.out.println();
Ping_PangBall_Game ping_pangBall_game = new Ping_PangBall_Game();
ping_pangBall_game.show();
System.out.println();
Banminton_Game banminton_game = new Banminton_Game();
banminton_game.show();
}
}
运行结果中的结果是:
分别是不同的平台