输入整数n,创建n个对象,放入同一个数组中。

如果输入c,则new Computer(); //注意:Computer是系统中已有的类,无需自己编写

如果输入d,则根据随后的输入创建Double类型对象。

如果输入i,则根据随后的输入创建Integer类型对象。

如果输入s,则根据随后的输入创建String类型对象。

如果不是以上这些输入,则不创建对象,而是将null存入数组相应位置。

最后倒序输出数组中的所有对象,如果数组中相应位置的元素为null则不输出。

裁判测试程序:

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    //这边是你的代码
    sc.close();
}

输入样例:

5
c
d 2.3
other
i 10
s Test

输出样例:

Test
10
2.3
//这行显示Computer对象toString方法

代码如下:

int n=sc.nextInt();
sc.nextLine();
Object[] obj=new Object[n];
for(int i=0;i<n;i++)
{
    String[] parts=sc.nextLine().split(" ");
    String choice=parts[0];
    if(choice.equals("c")){
        obj[i]=new Computer();
    }else if(choice.equals("d")){
        obj[i]=Double.parseDouble(parts[1]);;
    }else if(choice.equals("i")){
        obj[i]=Integer.parseInt(parts[1]);
    }else if(choice.equals("s")){
        obj[i]=parts[1];
    }else{
        obj[i]=null;
    }
}
for(int j=n-1;j>=0;j--)
{
    if(obj[j]!=null)
        System.out.println(obj[j]);
}

这道题主要考点其实就是子类可以直接为父类赋值(向上转型)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐