请老师检查

来源:7-2 作业题

Ctrlzhao

2019-10-18 22:05:40

package com.circus.test;

import java.util.Scanner;

import com.circus.Bear;
import com.circus.Clown;
import com.circus.IAct;
import com.circus.Lion;
import com.circus.Monkey;
import com.circus.Parrot;

public class Test {

	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
	 * IAct one=new Bear("Bill",1); one.act();
	 * System.out.println("============================"); IAct two=new
	 * Lion("Lain",2,"公狮","灰色"); two.act();
	 * System.out.println("============================"); IAct three=new
	 * Monkey("Tom",1,"金丝猴"); three.act();
	 * System.out.println("============================"); IAct five=new
	 * Parrot("Rose",1,"牡丹鹦鹉"); five.act();
	 * System.out.println("============================"); IAct four=new
	 * Clown("Kahle",5); four.act(); }
	 */
	public static void main(String[] args) {
		Test test = new Test();
		Scanner sc = new Scanner(System.in);
		int input;
		test.displayMenu();
		System.out.println("请输入数字  1  至  5 选择表演者!");
		while (true) {
			try{
			input = sc.nextInt();
			}catch(java.util.InputMismatchException e){
				System.out.println("输入数据格式有误,不能有非数字!");
				sc.next();
				continue;
			}
			// Boolean(input>=1) {
			switch (input) {
			case 1:
				IAct one = new Bear("Bill", 1);
				one.act();
				break;
			case 2:
				IAct two = new Lion("Lain", 2, "公狮", "灰色");
				two.act();
				break;
			case 3:
				IAct three = new Monkey("Tom", 1, "金丝猴");
				three.act();
				break;
			case 4:
				IAct five = new Parrot("Rose", 1, "牡丹鹦鹉");
				five.act();
				break;
			case 5:
				IAct four = new Clown("Kahle", 5);
				four.act();
				break;
			default:
				System.out.println("输入的数字有误,请重新输入!");
			}
			while (true) {
				System.out.println();
				System.out.println("***** 是否继续观看 (1/0) *****");
				try {
				input = sc.nextInt();
				}catch(java.util.InputMismatchException e) {
					System.out.println("输入数据格式有误,不能有非数字!");
					sc.next();
					continue;
				}
				if (input == 1) {
					test.displayMenu();
					break;
				} else if (input == 0) {
					System.out.println("退出马戏团!");
					System.exit(0);
				} else {
					System.out.println("输入信息有误,请重新输入!!!");
				}
			}
		}
	}
}


写回答

1回答

好帮手慕阿莹

2019-10-19

1、由于同学的代码不全,老师无法完全判断,这里老师根据同学已提供的代码提一些小建议:

为了体现多态,我们不用创建多个接口one ,two,three等,可以先声明一个接口的引用,如:IAct actor=null;然后在case 语句后面进行对象的创建,如case 1后的代码为:actor= new Bear("Bill", 1);

case 2 后的代码为 :actor= new Lion("Lain", 2, "公狮", "灰色");    default的时候可以把actor再设置为null。

2、以上修改后,可以在switch结构的外边,判断当 actor!=null的时候,统一调用 actor.act() 就好了。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 11489 问题

查看课程