[Java]PTA: jmu-Java-03面向对象基础-Object
输入整数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]);
}
这道题主要考点其实就是子类可以直接为父类赋值(向上转型)