【Java】简单的马戏团节目单项目

学习Java初期的一个练习项目,思路也算比较简单清晰,没有逻辑的运算内容
主要就是类和对象的使用,还涉及了一点点抽象类、接口和异常
现在一看当初写代码最大的问题就是注释太少了

一定要多多的写注释,注释多一点总不是坏事

下面是详细的代码——

• 项目列表

在这里插入图片描述
表演者的资料 and so on

Animal —— 定义一个节目中参与表演动物的抽象父类
IAct —— 定义一个用于实现表演何种节目的接口
Bear —— 继承于Animal的一个子类
Lion —— 继承于Animal的一个子类
Monkey —— 继承于Animal的一个子类
Parrot —— 继承于Animal的一个子类
Clown —— 单独定义的一个类

实现节目单

ActList —— 定义一个用于显示节目单及每个节目表演的类
InfoList —— 定义一个用于显示表演者资料的类
Assist —— 定义一个用于结束表演和判断是否继续观看的类(定义这个类初衷是为了简化代码)
TestCircus —— 主函数

• 代码详情
Animal.java
public abstract class Animal {      //抽象父类
    private String name;
    private int age;
    //有参和无参的构造函数
    public Animal(){
    }
    public Animal(String name,int age){
        this.name = name;
        this.age = age;
    }
    //用于得到相关信息的get方法
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    //用于设置属性的set方法
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    //用于描述喜好的抽象方法
    abstract String love();
}
IAct.java
public interface IAct {
    public String skill();      //接口中只能存在抽象方法
}
Bear.java
public class Bear extends Animal {
    public Bear(){
        super("Andy",2);
    }
    public String  love(){
        return "Andy喜欢吃蜂蜜并且喜欢睡觉";
    }
}
class BearSkill implements IAct {
    public String skill(){
        return "Andy正在跨越障碍物!";
    }
}
Lion.java
public class Lion extends Animal {
    private String color;
    private String sex;

    public Lion(){
        super("Brant",3);
        this.color = "brown";
        this.sex = "Male";
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String love(){
        return "Brant喜欢洗澡";
    }
}
class LionSkill implements IAct {
    public String skill(){
        return "Brant正在打滚!";
    }
}
Monkey.java
public class Monkey extends Animal {
    private String type;
    public Monkey(){
        super("Cole",1);
        this.type = "红脸猴";
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String love(){
        return "Cole喜欢吃水果";
    }
}
class MonkeySkill implements IAct {
    public String skill(){
        return "Cole正在骑单车!";
    }
}
Parrot.java
public class Parrot extends Animal {
    private String type;
    public Parrot(){
        super("Gary",4);
        this.type = "金刚鹦鹉";
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String love(){
        return "Gary喜欢晒太阳";
    }
}
class ParrotSkill implements IAct {
    public String skill(){
        return "Gary正在学人说话!";
    }
}
Clown.java
public class Clown {
    private String name;
    private int years;
    public Clown(){
        this.name = "Jesse";
        this.years = 2;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getYears() {
        return years;
    }

    public void setYears(int years) {
        this.years = years;
    }

    public String dress(){
        return "Jesse有一个大红鼻子和两个黑眼圈,并且穿着红白条纹的衣服";
    }
    public String love(){
        return "Jesse喜欢和人们开玩笑";
    }
}
class ClownSkill implements IAct {
    public String skill(){
        return "Jesse正在变魔术!";
    }
}
ActList.java
public class ActList {
    //节目单
    public void ActorList(){
        System.out.println("【节目单】\n1.熊跨障碍\n2.狮子打滚\n3.猴子骑车\n4.鹦鹉学舌\n5.小丑魔术");
    }
    //熊的表演
    public void bearAct(){
        BearSkill bearskill = new BearSkill();
        System.out.println("大熊Andy登场啦!");
        System.out.println("========================");
        System.out.println("表演开始啦!\n" + bearskill.skill()+'\n'+"表演结束!");
        System.out.println("========================");
    }

    //狮子的表演
    public void lionAct(){
        LionSkill lionskill = new LionSkill();
        System.out.println("狮子Brant登场啦!");
        System.out.println("========================");
        System.out.println("表演开始啦!\n" + lionskill.skill()+'\n'+"表演结束!");
        System.out.println("========================");
    }

    //猴子的表演
    public void monkeyAct(){
        MonkeySkill monkeyskill = new MonkeySkill();
        System.out.println("猴子Cole登场啦!");
        System.out.println("========================");
        System.out.println("表演开始啦!\n" + monkeyskill.skill()+'\n'+"表演结束!");
        System.out.println("========================");
    }

    //鹦鹉的表演
    public void parrotAct(){
        ParrotSkill parrotskill = new ParrotSkill();
        System.out.println("鹦鹉Gary登场啦!");
        System.out.println("========================");
        System.out.println("表演开始啦!\n" + parrotskill.skill()+'\n'+"表演结束!");
        System.out.println("========================");
    }

    //小丑的表演
    public void clownAct(){
        ClownSkill clownskill = new ClownSkill();
        System.out.println("小丑Jesse登场啦!");
        System.out.println("========================");
        System.out.println("表演开始啦!\n" + clownskill.skill()+'\n'+"表演结束!");
        System.out.println("========================");
    }

}
InfoList.java
public class InfoList {
    //熊的资料
    public void bearInfo(){
        Bear bear = new Bear();
        System.out.println("------------------------");
        System.out.println("【熊的资料】\n"+"【姓名】"+bear.getName()+'\n'+"【年龄】" + bear.getAge() + '\n' + "【爱好】" + bear.love());
        System.out.println("------------------------");
    }
    //狮子的资料
    public void lionInfo(){
        Lion lion = new Lion();
        System.out.println("------------------------");
        System.out.println("【狮子的资料】\n"+"【姓名】"+lion.getName()+'\n'+"【年龄】" + lion.getAge() + '\n' + "【颜色】" + lion.getColor() + '\n' + "【性别】" + lion.getSex()+ '\n' + "【爱好】" + lion.love());
        System.out.println("------------------------");
    }
    //猴子的资料
    public void monkeyInfo(){
        Monkey monkey = new Monkey();
        System.out.println("------------------------");
        System.out.println("【猴子的资料】\n"+"【姓名】"+monkey.getName()+'\n'+"【年龄】" + monkey.getAge() + '\n' + "【品种】" + monkey.getType() + '\n' + "【爱好】" + monkey.love());
        System.out.println("------------------------");
    }
    //鹦鹉的资料
    public void parrotInfo(){
        Parrot parrot = new Parrot();
        System.out.println("------------------------");
        System.out.println("【鹦鹉的资料】\n"+"【姓名】"+parrot.getName()+'\n'+"【年龄】" + parrot.getAge() + '\n' + "【品种】" + parrot.getType() + '\n'+"【爱好】" + parrot.love());
        System.out.println("------------------------");
    }
    //小丑的资料
    public void clownInfo(){
        Clown clown = new Clown();
        System.out.println("------------------------");
        System.out.println("【小丑的资料】\n"+"【姓名】"+clown.getName()+'\n'+"【艺龄】" + clown.getYears() + '\n' + "【着装】" + clown.dress() + '\n' + "【爱好】" + clown.love());
        System.out.println("------------------------");
    }
}
Assist.java
import java.io.IOException;
import java.util.Scanner;

public class Assist {
    //结束表演并退出程序
    public void endCircus(){
        System.out.println("【表演结束,谢谢观看!】");
        System.exit(0);
    }
    //判断是否继续观看
    public boolean ifContinue(int ifcontinue){
        Scanner input = new Scanner(System.in);
        try{
            if(ifcontinue!=1&&ifcontinue!=0)
                throw new IOException("wrong input");
        }
        catch(IOException e1){
            System.out.println("【输入错误,请重新输入!】");
            ifcontinue = input.nextInt();
        }
        return ifcontinue == 1 ? true :false;
    }
}
TestCircus.java
import java.io.IOException;
import java.util.*;

public class TestCircus {
    public static void main(String[] args) {
        System.out.println("【欢迎观看马戏团表演!】\n");
        //创建相关类的对象
        Scanner input = new Scanner(System.in);
        InfoList infolist = new InfoList();
        ActList actlist = new ActList();
        Assist assist = new Assist();
        int flag1 = 0,flag2 = 0,flag3 = 0,flag4 = 0,flag5 = 0;
        int choice;
        while (true) {
            //若节目全部表演完毕则退出程序
            if(flag1==1&&flag2==1&&flag3==1&&flag4==1&&flag5==1)
            {
                System.out.println("【表演全部结束,谢谢观看!】");
                assist.endCircus();
            }
            //是否需要节目单
            System.out.println("【如需节目单请按1,不需要请按0】");
            int actorlist = input.nextInt();
            if (actorlist == 1)
                actlist.ActorList();
            //选择要观看的节目
            System.out.println("\n请选择您想观看的节目:");
            System.out.println("(1)第一场 熊跨障碍\n(2)第二场 狮子打滚\n(3)第三场 猴子骑车\n(4)第四场 鹦鹉学舌\n(5)第五场 小丑魔术\n(6)不看了我要走了\n");
            choice = input.nextInt();
            //若输入错误,则抛出异常
            try {
                if (choice > 6 || choice < 1) {
                    throw new IOException("wrong input");
                }
            } catch (IOException e) {
                System.out.println("【输入错误,请重新输入!】");
                choice = input.nextInt();
            }
            switch (choice) {
                //调用熊的相关方法
                case 1: {
                    if(flag1==1)
                    {
                        System.out.println("【该节目已经表演过了,请重新选择!】");
                        break;
                    }
                    infolist.bearInfo();
                    actlist.bearAct();
                    flag1 = 1;
                    System.out.println("【是否继续观看(1/0)】");
                    if (!assist.ifContinue(input.nextInt()))
                        assist.endCircus();
                    break;
                }
                //调用狮子的相关方法
                case 2: {
                    if(flag2==1)
                    {
                        System.out.println("【该节目已经表演过了,请重新选择!】");
                        break;
                    }
                    infolist.lionInfo();
                    actlist.lionAct();
                    flag2 = 1;
                    System.out.println("【是否继续观看(1/0)】");
                    if (!assist.ifContinue(input.nextInt()))
                        assist.endCircus();
                    break;
                }
                //调用猴子的相关方法
                case 3: {
                    if(flag3==1)
                    {
                        System.out.println("【该节目已经表演过了,请重新选择!】");
                        break;
                    }
                    infolist.monkeyInfo();
                    actlist.monkeyAct();
                    flag3 = 1;
                    System.out.println("【是否继续观看(1/0)】");
                    if (!assist.ifContinue(input.nextInt()))
                        assist.endCircus();
                    break;
                }
                //调用鹦鹉的相关方法
                case 4: {
                    if(flag4==1)
                    {
                        System.out.println("【该节目已经表演过了,请重新选择!】");
                        break;
                    }
                    infolist.parrotInfo();
                    actlist.parrotAct();
                    flag4 = 1;
                    System.out.println("【是否继续观看(1/0)】");
                    if (!assist.ifContinue(input.nextInt()))
                        assist.endCircus();
                    break;
                }
                //调用小丑的相关方法
                case 5: {
                    if(flag5==1)
                    {
                        System.out.println("【该节目已经表演过了,请重新选择!】");
                        break;
                    }
                    infolist.clownInfo();
                    actlist.clownAct();
                    flag5 = 1;
                    System.out.println("【是否继续观看(1/0)】");
                    if (!assist.ifContinue(input.nextInt()))
                        assist.endCircus();
                    break;
                }
                //不看了
                case 6: {
                    assist.endCircus();
                    break;
                }
            }
        }
    }
}

主函数通过定义flag变量实现每个节目只能表演一次
节目编号输入错误等异常在主函数中抛出并在控制台输出

运行之后大概就是这样了
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值