学习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变量实现每个节目只能表演一次
节目编号输入错误等异常在主函数中抛出并在控制台输出

运行之后大概就是这样了

【Java】简单的马戏团节目单项目相关推荐

  1. Java简单的记账本项目

    Java简单的 记账本:超级简单的新手入门项目 源码: public class test项目一 { public static void main(String[] args) { // TODO ...

  2. java简单的增删改查项目 ATM机

    java简单的增删改查项目 login: package atm;import java.util.ArrayList; import java.util.List; import java.util ...

  3. 简单开源java ssm_[VIP源码]【S006】SSM(Spring+Spring MVC+Mybatis) java开源博客管理系统项目源码...

    java源码项目名称:SSM(Spring+Spring MVC+Mybatis) java开源博客管理系统项目源码  java项目源码 1 ?, R, _* q  n8 v) S$ R7 ?百度网盘 ...

  4. java se 与j2se_关于java:J2EE和J2SE项目之间的区别

    本问题已经有最佳答案,请猛点这里访问. 我已经从github下载了一个开源项目. 这是一个基于Maven的项目. 我如何理解该项目是J2SE项目还是J2EE项目? 这两种项目在结构上有何不同? Jav ...

  5. Idea 创建简单的SpringBoot 父子项目

    背景 使用Idea 创建一个模块化的SpringBoot项目,但是发现Idea 创建父子项目的方式较Eclipse 较为不同,且Idea 创建的过程较Eclipse创建父子项目的过程复杂. Eclip ...

  6. SpringBoot-Jsoup做java简单-爬虫

    使用SpringBoot+Jsoup做java简单'爬虫' Jsoup简介 Jsoup是一款java的Html解析器,可以直接解析Html.针对网页提供了相关Api,可以通过Dom.Css.Jquer ...

  7. 《好好学Java 从零基础到项目实战》姗姗而来

    梦里寻她千百度,千呼万唤始出来.从决定开始写这本书,到最终出版上市,数数已经是第三个夏天了.今年疫情有点紧,各行各业都受到影响,多亏出版社各位老师东奔西走,总算排除了万般艰难险阻,这才有了<好好 ...

  8. 一个简单的微服务项目带你上手spring cloud 全家桶

    最近一个月,断断续续学习了spring cloud的主流微服务模块,然后实践了一个比较容易上手的微服务项目,现在做一个总结. 这个项目是在github上的一个比较经典的spring cloud易上手的 ...

  9. 视频教程-用Java从零开始开发一个物联网项目-物联网技术

    用Java从零开始开发一个物联网项目 多年的产品设计和开发经验,带领团队完成多个知名产品.历任多家大型公司的Java架构师,对知名框架的源码均有深入研究.拥有IT一线开发.教学10多年的实战经验,能充 ...

  10. 基于JAVA springboot + MYSQL +VUE的项目管理系统(含数据库),包括工时统计、原型预览、效果图管理等

    平台介绍 无鱼工时管理系统,是一款轻量级工时记录和管理工具,包括项目管理,工时上报,工时日报,工时统计等功能. 无鱼工时管理系统可通过员工工时上报的方式,来记录项目所花费的工时,帮助企业进行项目工时统 ...

最新文章

  1. 写程序是最轻松的事情
  2. 在Eclipse中生成API方法
  3. MyBatis-Plus 代码生成器
  4. 从普通JAVA程序员到阿里P8架构师,他用了六年
  5. 每日两SQL(4),欢迎交流~
  6. 最优化理论与方法(part8)--凸集的分离和支撑
  7. entity-model-first
  8. 保存现场数据和状态:onSaveInstanceState\onRestoreInstanceState\onCreate()
  9. visual paradigm 表示选择关系_知识获取的新挑战—远程监督关系抽取
  10. html读取媒体长度,用媒体查询media根据屏幕分辨率大小确定网页宽度
  11. 武汉区块链软件技术公司区块链将如何应用于会员生态系统?
  12. Lotus开发之Lotus Notes中域的验证
  13. 【Git/Github学习笔记】ubuntu系统下使用git命令与windows下的差别
  14. Android Measure测量实际应用心得(一)
  15. Qt配置OpenCV教程
  16. 一个500强公司的数据化运营管理实践 1
  17. HMM和DNN语音合成必备基础知识:音素和拼音的基础知识及工具初学
  18. 现代数据库及大数据管理—常见问题与技术归纳
  19. html img设置形状,图片img直接设置样式
  20. STM32F407学习笔记——MG90S舵机模块(基本控制)

热门文章

  1. [CSS基础]在一个网页中使用多种不同链接风格的CSS.
  2. REVIT模型空间句法分析
  3. Hexo | yilia主题安装
  4. 2019携程校园招聘编程题(2)取满足条件订单号
  5. Data Path Manager(DPM)-数据路径管理
  6. 强大的 Stream 函数式编程
  7. C++书本综合实例(一)个人银行账户管理
  8. Java开发关键技术
  9. 游戏程序员的2013年终总结
  10. 阅读笔记:利用Python进行数据分析第2版——第8章 数据规整:聚合、合并和重塑