判断对象是否为空
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 份
- 解答问题 7235 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星