任务描述
一、语言环境
实现语言 Java语言
环境要求及开发工具 JDK、Eclipse
二、程序整体要求
1。划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。
2、类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。
3、要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释
4、程序运行效果参考效果图要求,文字大小、颜色也不做统一要求
5、结合演示效果,完成需求分析中的所有内容
三、需求分析
1. 整个项目由三个环节组成:
-表演菜单展示
-选择表演者进行表演
-选择是否继续观看表演
2. 使用面向对象思想编程
对封装、继承和多态的使用
注意编码规范
注意循环的使用
四、详细设计
1.抽象父类: - 动物(Animal)
属性:昵称(name)、年龄(age)
抽象方法:描述喜好(love)
2. 接口 - 表演(IAct)
抽象方法:描述技能(skill)、描述表演(act)
说明: 每个表演者的表演信息是通过调用act()方法输出的
3. 实现类
- 棕熊(Bear)
继承自Animal实现IAct
- 狮子(Lion)
继承自Animal实现IAct
新增属性:颜色(color)、性别(sex)
- 猴子(Monkey)
继承自Animal实现IAct
新增属性:品种(Type)
- 鹦鹉(Parrot)
继承自Animal实现IAct
新增属性:品种(type)
- 小丑(Clown)
实现IAct
属性:名字(name)、艺龄(years)
新增方法:着装特点(dress)
五、实现效果
六、代码实现
Animal父类
public abstract class Animal {
private String name;
private int age;
Animal(){
}
Animal(String name,int age){
this.setName(name);
this.setAge(age);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public abstract void love();
}
Bear类
/**
* 继承自Animal类的Bear类
* 接口IAct
* @author Fairy
*
*/
public class Bear extends Animal implements IAct {
public Bear(String name,int age) {
// TODO Auto-generated constructor stub
super(name, age);
}
@Override
public void love() {
// TODO Auto-generated method stub
System.out.println("爱好:喜欢卖萌");
}
@Override
public void act() {
// TODO Auto-generated method stub
System.out.println("表演者:"+this.getName());
System.out.println("年龄:"+this.getAge()+"岁");
skill();
love();
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:挽着花篮,打着雨伞,自立走秀");
}
}
Lion类
/**
* 继承自Animal类的Lion类
* 接口IAct
* 特有属性有性别和毛色
* @author Fairy
*
*/
public class Lion extends Animal implements IAct {
private String sex;
private String color;
public Lion(String name,int age,String color,String sex) {
super(name, age);
this.setSex(sex);
this.setColor(color);
}
@Override
public void love() {
// TODO Auto-generated method stub
System.out.println("爱好:喜欢吃各种肉类");
}
@Override
public void act() {
// TODO Auto-generated method stub
System.out.println("表演者:"+this.getName());
System.out.println("年龄:"+this.getAge()+"岁");
skill();
love();
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:擅长钻火圈");
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
Monkey类
/**
* 继承自Animal类的Monkey类
* 接口IAct
* 特有属性有品种
* @author Fairy
*
*/
public class Monkey extends Animal implements IAct {
private String Type;
public Monkey(String name,int age,String type) {
super(name, age);
this.setSpecies(type);
}
@Override
public void love() {
// 爱好
System.out.println("爱好:喜欢模仿人的动作");
}
@Override
public void act() {
// 表演
System.out.println("表演者:"+this.getName());
System.out.println("年龄:"+this.getAge()+"岁");
skill();
love();
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:骑独轮车过独木桥");
}
public String getSpecies() {
return Type;
}
public void setSpecies(String type) {
this.Type = type;
}
}
Parrot类
/**
* 继承自Animal类的Parrot类
* 接口IAct
* 特有属性为品种
* @author Fairy
*
*/
public class Parrot extends Animal implements IAct {
private String Type;
public Parrot(String name,int age,String type) {
super(name, age);
this.setType(type);
}
@Override
public void love() {
// 爱好
System.out.println("爱好:喜欢吃坚果和松子");
}
@Override
public void act() {
// 表演
System.out.println("表演者:"+this.getName());
System.out.println("年龄:"+this.getAge()+"岁");
skill();
love();
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:擅长模仿");
}
public String getType() {
return Type;
}
public void setType(String type) {
Type = type;
}
}
Clown类
/**
* 小丑类
* 特有属性有:昵称和艺龄
* 接口IAct
* @author Fairy
*
*/
public class Clown implements IAct {
private String name;
private int actAge;
public Clown(String name,int actAge) {
this.setName(name);
this.setActAge(actAge);
}
@Override
public void act() {
// TODO Auto-generated method stub
System.out.println("表演者:"+this.getName());
System.out.println("艺龄:"+this.getActAge()+"岁");
dress();
skill();
}
@Override
public void skill() {
// TODO Auto-generated method stub
System.out.println("技能:脚踩高跷,进行杂技魔术表演");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getActAge() {
return actAge;
}
public void setActAge(int actAge) {
this.actAge = actAge;
}
//新增方法:着装特点
public void dress() {
System.out.println("着装:身穿五彩服装,头上戴着彩色的帽子,脸上画着夸张的彩妆");
}
}
IAct接口
public interface IAct {
abstract void act();
abstract void skill();
}
Show类,实现
/**
* 项目作业 菜单包括:提示语“欢迎来到太阳马戏团”
* 选择表演者提示语
* 1、棕熊
* 2、狮子
* 2、猴子
* 2、鹦鹉
* 2、小丑
* @author Fairy
*
*/
public class Show {
/**
* 展示菜单方法
*/
public void displayMenu() {
System.out.println("*************"+"欢迎来到太阳马戏团"+"****************");
System.out.println("****************"+"请选择表演者"+"*******************");
System.out.println(" 1--棕熊");
System.out.println(" 2--狮子");
System.out.println(" 3--猴子");
System.out.println(" 4--鹦鹉");
System.out.println(" 5--小丑");
System.out.println("***********************************************");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Show show=new Show();
IAct actor=null;
int k=1;
int n;
Scanner scanner=new Scanner(System.in);
while(k==1) {
show.displayMenu();
try{
n=scanner.nextInt();
}catch ( java.util.InputMismatchException e) {
System.out.println("输入有误,请按照提示的整数输入!");
scanner.next();
continue;
}
switch (n) {
case 1:
actor=new Bear("Bill", 1);
actor.act();
break;
case 2:
actor=new Lion("Lain",2,"灰色","公狮");
actor.act();
break;
case 3:
actor=new Monkey("Tom", 1, "金丝猴");
actor.act();
break;
case 4:
actor=new Parrot("Rose", 1, "牡丹鹦鹉");
actor.act();
break;
case 5:
actor=new Clown("Kahle",5);
actor.act();
break;
default:
System.out.println("输入有误,请重新输入");
continue;
}
System.out.println("******"+"是否继续观看(0/1)"+"******");
k=scanner.nextInt();
Boolean b=true;
while(b) {
System.out.println("******"+"是否继续观看(0/1)"+"******");
k=scanner.nextInt();
switch (k) {
case 1:
b=false;
break;
case 0:
System.out.println("*********"+"欢迎下次光临"+"*********");
System.exit(0);
break;
default:
System.out.println("输入有误,请重新输入");
scanner.next();
continue;
}
}
}
}
}
来记录自己写过的项目,从小积累到大!
一步一个脚印!加油!!有错误的地方还希望各位大佬能够指正!!
谢谢~~~