new Integer()和new int[3]的困惑??
1.我自己写了一个类,代码如下:
public class Test {
private final int i;
public Test(int i) {
// TODO Auto-generated constructor stub
this.i = i;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new Test(123));
System.out.println(new Integer(123));
}
}
为什么System.out.println(new Test(123));的结果是Test@35ce36
而System.out.println(new Integer(123));的结果是123 ?不解。。。。
2.int[] j=new int[3];int[]是个类吗?为什么可以new int[3]呢?
多谢各位指点。。。。。。
------解决方案--------------------你没有覆盖 toString()方法,System.out.println(par) 会调用par的toString()方法。
public class Test {
private final int i;
public Test(int i) {
// TODO Auto-generated constructor stub
this.i = i;
}
public String toString(){
StringBuffer tmp = new StringBuffer();
tmp.append(i);
return tmp.toString();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new Test(123));
System.out.println(new Integer(123));
}
}
这样出来就会有了,
呵呵!
------解决方案--------------------所有的数组都是一个类,你可以用Class类的isArray方法来判断一个对象是不是数组。