黑马程序员技术交流社区

标题: 关于上传对象问题 [打印本页]

作者: ytblght55    时间: 2013-6-16 13:00
标题: 关于上传对象问题
我设计Unicycle,Bicycle,Tricycle三个class继承于Car.我给了个方法返回一个Car类型的对象,里面随即产生三个数,对应的返回三个class的对象.但是会报错,上转对象不成功.
  1. public Car next(){
  2. Scanner sc=new Scanner(System.in);
  3. System.out.println("请输入一个整数");
  4. int i=sc.nextInt()%3;
  5. switch (i){
  6. case 0:
  7. return new Bicycle();
  8. case 1:
  9. return new Tricycle();
  10. case 2:
  11. return new Unicycle();
  12. }
  13. }
复制代码

作者: 薛淑凯    时间: 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
薛淑凯 发表于 2013-6-16 13:53
import java.util.Scanner;

interface Cars{void show();}

good job~~~THS!!
作者: ytblght55    时间: 2013-6-16 17:04
沐有鱼丸 发表于 2013-6-16 15:27
package com.thread;

import java.util.Scanner;

good job~~~THS!!
作者: ytblght55    时间: 2013-6-17 09:27
已解决!
作者: 孙百鑫    时间: 2013-6-22 01:40
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2