【发布时间】:2017-11-12 05:02:54
【问题描述】:
问题1: 我有一个疑问,如果我们只能创建类的对象,那么我们如何能够创建原始数据类型的对象,例如 int、char 等。
问题2: 现在假设 Ankit 是一个类,如果我写
Ankit a=new Ankit();
System.out.println(a.getClass().getName());
它会给我一个类名。另外,如果我写
System.out.println(Ankit.class);
那么它也会给出类名。但是如果我写
int ar[]=new int[10];
System.out.println(ar.getClass().getName());
System.out.println(int.class);
然后我得到输出:
[I 和 int
为什么会这样?在这里,我也应该得到与 int ar 的类名相同的输出,那么为什么不同的输出以及什么是 [I?
【问题讨论】:
-
提示:不要将数组类型的变量声明为
int ar[](尽管Java语法允许这样做),而是将它们声明为int[] ar。然后你会发现你最好写System.out.println(int[].class),因为这是正确的数组类型。 -
关于“问题1”:不能声明primitive类型的对象。原始类型的本质是它们不是面向对象的。您只能创建 reference 类型的对象。