目前就剩下一个问题没解决了,请老师帮忙看看。谢谢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | public abstract class Animal { /** * 定义属性 name 和age. */ private String name; private int age; /** * 对私有属性进行封装 * @return */ 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; } /** * 建立抽象方法love(); */ public abstract String love(); } |
1 2 3 4 | public abstract interface IAct { public abstract String skill(); public abstract String act(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | public class Bear extends Animal implements IAct { /** * 构造无参和有参方法.用来写入属性值 */ public Bear() { } public Bear(String name, int age) { this .setName(name); this .setAge(age); } /** * 重写父类方法love() */ @Override public String love() { return "喜欢卖萌" ; } /** * 重写接口方法 skill() * */ @Override public String skill() { return "挽着花篮,打着雨伞,自立走秀" ; } /** * 重写并且实现接口方法act() */ @Override public String act() { String str = "表演者:" + this .getName()+ "\n年龄:" + this .getAge()+ "岁\n技能:" + this .skill()+ "\n爱好:" + this .love(); return str; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | public class Lion extends Animal implements IAct { /** * 定义私有参数color,sex */ private String color,sex; /** * 构造无参和有参方法.用来写入属性值 */ public Lion() { } public Lion(String name, int age ,String color,String sex) { this .setName(name); this .setAge(age); this .setColor(color); this .setSex(sex); } /** * 对私有属性进行封装 * @return */ 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; } /** * 重写父类方法love() */ @Override public String love() { return "喜欢吃各种肉类" ; } /** * 重写接口方法 skill() * */ @Override public String skill() { return "擅长钻火圈" ; } /** * 重写并且实现接口方法act() */ @Override public String act() { String str = "表演者:" + this .getName()+ "\n年龄:" + this .getAge()+ "岁\n性别:" + this .getSex()+ "狮\n毛色:" + this .getColor()+ "\n技能:" + this .skill()+ "\n爱好:" + this .love(); return str; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | public class Monkey extends Animal implements IAct { /** * 定义私有参数type */ private String type; /** * 构造无参和有参方法.用来写入属性值 */ public Monkey() { } public Monkey(String name, int age,String type) { this .setName(name); this .setAge(age); this .setType(type); } /** * 对私有属性进行封装 * @return */ public String getType() { return type; } public void setType(String type) { this .type = type; } /** * 重写父类方法love() */ @Override public String love() { return "喜欢模仿人的动作表情" ; } /** * 重写接口方法 skill() * */ @Override public String skill() { return "骑独轮车过独木桥" ; } /** * 重写并且实现接口方法act() */ @Override public String act() { String str = "表演者:" + this .getName()+ "\n年龄:" + this .getAge()+ "岁\n品种:" + this .getType()+ "\n技能:" + this .skill()+ "\n爱好:" + this .love(); return str; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | public class Parrot extends Animal implements IAct { /** * 定义私有参数type */ private String type; /** * 构造无参和有参方法.用来写入属性值 */ public Parrot() { } public Parrot(String name, int age,String type) { this .setName(name); this .setAge(age); this .setType(type); } /** * 对私有属性进行封装 * @return */ public String getType() { return type; } public void setType(String type) { this .type = type; } /** * 重写父类方法love() */ @Override public String love() { return "喜欢吃坚果和松子" ; } /** * 重写接口方法 skill() * */ @Override public String skill() { return "擅长模仿" ; } @Override public String act() { String str = "表演者:" + this .getName()+ "\n年龄:" + this .getAge()+ "岁\n品种:" + this .getType()+ "\n技能:" + this .skill()+ "\n爱好:" + this .love(); return str; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | public class Clown implements IAct { /** * 定义私有参数type */ private String name; private int years; /** * 构造无参和有参方法.用来写入属性值 */ public Clown(){ } public Clown(String name, int years){ this .setName(name); this .setYears(years); } /** * 对私有属性进行封装 * @return */ 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 "身穿五彩服装,头上戴着彩色的帽子,脸上画着夸张的彩妆" ; } /** * 重写接口方法 skill() * */ @Override public String skill() { return "脚踩高跷,进行杂技魔术表演" ; } @Override public String act() { String str = "表演者:" + this .getName()+ "\n艺龄:" + this .getYears()+ "年\n着装:" + this .dress()+ "\n技能:" + this .skill(); return str; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class Menu { public void select() { System.out.println( "******** 是否继续观看(1/0) ********" ); } public void info() { 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、小丑 **********" ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | import java.util.InputMismatchException; import java.util.Scanner; public class Test { public static void main(String[] args) { int input ; Menu mu = new Menu(); mu.info(); Scanner sc = new Scanner(System.in); IAct actor= null ; while ( true ) { try { input = sc.nextInt(); } catch (InputMismatchException e){ System.out.println( "输入的不是数字,请重新输入" ); sc.next(); continue ; } switch (input) { case 1 : actor= new Bear( "Bill" , 1 ); System.out.println( actor.act()); break ; case 2 : System.out.println( "================" ); actor = new Lion( "Lain" , 2 , "灰色" , "公" ); System.out.println( actor.act()); break ; case 3 : System.out.println( "================" ); actor = new Monkey( "Tom" , 1 , "金丝猴" ); System.out.println( actor.act()); break ; case 4 : System.out.println( "================" ); actor = new Parrot( "Rose" , 1 , "牡丹鹦鹉" ); System.out.println( actor.act()); break ; case 5 : System.out.println( "================" ); actor = new Clown( "Kahle" , 5 ); System.out.println( actor.act()); break ; default : System.out.println( "输入的数字不对,请重新输入" ); continue ; } mu.select(); try { input = sc.nextInt(); if (input!= 1 && input!= 0 ) { System.out.println( "输入的数字不对,请重新输入" ); break ; } else if (input== 1 ) { mu.info(); continue ; } else { System.out.println( "********谢谢观赏,欢迎下次再来!**********" ); return ; } } catch (InputMismatchException e){ System.out.println( "输入的不是数字,请重新输入" ); sc.next(); continue ; } /*switch(input) { case 0: System.out.println( "********谢谢观赏,欢迎下次再来!**********"); return; case 1: mu.info(); continue; }*/ } |
问题就是:
当我在是否继续选择观看时,输入的不是1或者0 ,就会退出,请问那段程序要怎么改?
另外程序还有什么其他问题吗?
3
收起
正在回答
3回答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | import java.util.InputMismatchException; import java.util.Scanner; public class Test { public static void main(String[] args) { int input ; Menu mu = new Menu(); mu.info(); Scanner sc = new Scanner(System.in); IAct actor= null ; while ( true ) { try { input = sc.nextInt(); } catch (InputMismatchException e){ System.out.println( "输入的不是数字,请重新输入" ); sc.next(); continue ; } switch (input) { case 1 : actor= new Bear( "Bill" , 1 ); System.out.println( actor.act()); break ; case 2 : System.out.println( "================" ); actor = new Lion( "Lain" , 2 , "灰色" , "公" ); System.out.println( actor.act()); break ; case 3 : System.out.println( "================" ); actor = new Monkey( "Tom" , 1 , "金丝猴" ); System.out.println( actor.act()); break ; case 4 : System.out.println( "================" ); actor = new Parrot( "Rose" , 1 , "牡丹鹦鹉" ); System.out.println( actor.act()); break ; case 5 : System.out.println( "================" ); actor = new Clown( "Kahle" , 5 ); System.out.println( actor.act()); break ; default : System.out.println( "输入的数字不对,请重新输入" ); continue ; } while ( true ) { mu.select(); try { input = sc.nextInt(); if (input!= 1 && input!= 0 ) { System.out.println( "输入的数字不对,请重新输入" ); continue ; } else if (input== 1 ) { mu.info(); break ; } else { System.out.println( "********谢谢观赏,欢迎下次再来!**********" ); return ; } } catch (InputMismatchException e){ System.out.println( "输入的不是数字,请重新输入" ); sc.next(); continue ; } } } } } |
我替你改的主方法,你看行不行?
如果解决了你的问题,望采纳,你的采纳是对我最大的鼓励
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧