判断对象是否为空
package com.imooc.menu; import java.util.Scanner; import com.imooc.model.implementation.*; /** * Menu方法 * 实现交互界面 * 由于Animal子类的属性不允许用户定义,所以在此定义 * @author J * */ public class Menu { Scanner sc=new Scanner(System.in); int inPut; //打印节目单 public void show(){ 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、小丑 ********"); } //打印退出提示 public void logOut(){ System.out.println("********是否继续观看?(0/1)********"); } /** * 打印表演者信息方法 * 根据用户输入的数字,调用相应的表演者信息 * 并调用退出提示方法和判断退出方法 */ public void showJudge(){ while(true){ inPut=sc.nextInt(); switch(inPut){ case 1: Bear bear=new Bear("Bill",1); System.out.println(bear.info()); logOut(); logOutJudge(); break; case 2: Lion lion=new Lion("Lain",2,"灰色","公狮"); System.out.println(lion.info()); logOut(); logOutJudge(); break; case 3: Monkey monkey=new Monkey("Tom",1,"金丝猴"); System.out.println(monkey.info()); logOut(); logOutJudge(); break; case 4: Parrot parrot=new Parrot("Rose",1,"牡丹鹦鹉"); System.out.println(parrot.info()); logOut(); logOutJudge(); break; case 5: Clown clown=new Clown("Kahle",5); System.out.println(clown.info()); logOut(); logOutJudge(); default: System.out.println("*** 输入信息不正确,请重新输入! ***"); } } } /** * 退出方法 */ public void logOutJudge(){ while(true){ inPut=sc.nextInt(); switch (inPut) { case 1: show(); showJudge(); break; case 0: System.out.println("******** 已退出! ********"); System.exit(0);//关闭当前进程。 default: System.out.println("*** 输入信息不正确,请重新输入! ***"); } } } }
case 1: Bear bear=new Bear("Bill",1); System.out.println(bear.info()); logOut(); logOutJudge(); break;
我想在 Bear bear=new Bear("Bill",1); 前面加一个判断,如果没有这个对象(或者说对象为空,不知道该怎么表达。。。),新建一个对象,如果有就直接 System.out.println(bear.info()); 请问该怎么写呢?
25
收起
正在回答
2回答
这个作业的考察点是多态的应用,所以应该先定义接口的引用,例如IAct actor=null;然后在case 语句后面进行对象的创建,如case 1后的代码为:actor= new Bear("Bill", 1);然后act方法的调用写在switch结构的外面,即actor.act();需要把输出的信息分别封装到子类act()中。
慕村2295823
2018-03-08 12:18:26
package com.imooc.test; import com.imooc.menu.Menu; /** * 测试类Test * 测试程序 * @author J * */ public class Test { public static void main(String[] args) { // TODO Auto-generated method stub //创建Menu对象,并调用Menu的方法实现作业要求 Menu test=new Menu(); test.show(); test.showJudge(); } }
package com.imooc.model.interf; /** * 接口IAct * 描述技能 * 描述表演 * @author J * */ public interface IAct { String skill(); String act(); }
package com.imooc.menu; import java.util.Scanner; import com.imooc.model.implementation.*; import com.imooc.model.interf.IAct; /** * Menu方法 * 实现交互界面 * 由于Animal子类的属性不允许用户定义,所以在此定义 * @author J * */ public class Menu { Scanner sc=new Scanner(System.in); int inPut; //打印节目单 public void show(){ 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、小丑 ********"); } //打印退出提示 public void logOut(){ System.out.println("********是否继续观看?(0/1)********"); } /** * 打印表演者信息方法 * 根据用户输入的数字,调用相应的表演者信息 * 并调用退出提示方法和判断退出方法 */ public void showJudge(){ while(true){ inPut=sc.nextInt(); switch(inPut){ case 1: IAct bear=new Bear("Bill",1); System.out.println(bear.act()); logOut(); logOutJudge(); break; case 2: IAct lion=new Lion("Lain",2,"灰色","公狮"); System.out.println(lion.act()); logOut(); logOutJudge(); break; case 3: IAct monkey=new Monkey("Tom",1,"金丝猴"); System.out.println(monkey.act()); logOut(); logOutJudge(); break; case 4: IAct parrot=new Parrot("Rose",1,"牡丹鹦鹉"); System.out.println(parrot.act()); logOut(); logOutJudge(); break; case 5: IAct clown=new Clown("Kahle",5); System.out.println(clown.act()); logOut(); logOutJudge(); default: System.out.println("*** 输入信息不正确,请重新输入! ***"); } } } /** * 退出方法 */ public void logOutJudge(){ while(true){ inPut=sc.nextInt(); switch (inPut) { case 1: show(); showJudge(); break; case 0: System.out.println("******** 已退出! ********"); System.exit(0);//关闭当前进程。 default: System.out.println("*** 输入信息不正确,请重新输入! ***"); } } } }
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星