黑马程序员技术交流社区
标题: 关于上传对象问题 [打印本页]
作者: ytblght55 时间: 2013-6-16 13:00
标题: 关于上传对象问题
我设计Unicycle,Bicycle,Tricycle三个class继承于Car.我给了个方法返回一个Car类型的对象,里面随即产生三个数,对应的返回三个class的对象.但是会报错,上转对象不成功.
- public Car next(){
- Scanner sc=new Scanner(System.in);
- System.out.println("请输入一个整数");
- int i=sc.nextInt()%3;
- switch (i){
- case 0:
- return new Bicycle();
- case 1:
- return new Tricycle();
- case 2:
- return new Unicycle();
- }
- }
复制代码
作者: 薛淑凯 时间: 2013-6-16 13:36
错误信息呢。
作者: 薛淑凯 时间: 2013-6-16 13:53
import java.util.Scanner;
interface Cars{void show();}
class B implements Cars{
public void show(){
System.out.println("BBBB");
}
}
class T implements Cars{
public void show(){
System.out.println("TTTT");
}
}
class U implements Cars{
public void show(){
System.out.println("UUUU");
}
}
public class Car {
public static Cars getCar(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入");
int i=sc.nextInt()%3;
switch(i){
case 1:
return new B();
case 2:
return new T();
case 3:
return new U();
}
return null;// 应该就是这个地方了,前边应该对 i 进行一下判断,不然比如输入负数就会出现空指针异常
}
public static void main(String[] args){
Cars c=Car.getCar();
c.show();
}
}
作者: 沐有鱼丸 时间: 2013-6-16 15:27
package com.thread;
import java.util.Scanner;
abstract class Car {}
class Unicycle extends Car{}
class Bicycle extends Car{}
class Tricycle extends Car{}
public class TestCar {
public static void main(String[] args) {
if(null!=next())
System.out.println(next().getClass().getName());
else
System.out.println("随机数范围不在1~3内,无对象产生");
}
public static Car next() {
Scanner sc=new Scanner(System.in);
System.out.println("请输入随机数");
int i=sc.nextInt()%3;
switch(i){
case 1:
return new Bicycle();
case 2:
return new Tricycle();
case 3:
return new Unicycle();
default: //switch语句应该设置一个默认值,就不会报错了
return null;
}
}
}
作者: ytblght55 时间: 2013-6-16 17:03
good job~~~THS!!
作者: ytblght55 时间: 2013-6-16 17:04
good job~~~THS!!
作者: ytblght55 时间: 2013-6-17 09:27
已解决!
作者: 孙百鑫 时间: 2013-6-22 01:40
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |