1、system.out.println();可以输出基本类型和类类型,可以直接输出string类型对象。
2、其实system.out.println();输出的是类的toString方法,所以非string对象也可以被system.out.println输出,但是很有可能是乱码,如:
class Node {
int number;
Node nextNode;
Node(int i){
this.number=i;
}
}
Node tNode = new Node(3);
System.out.println(tNode);
打印输出的是:Node@1aa9f99.所以必须重写toString方法,每个类都有toString()方法。
3、数组也是类,有些数组为了显示,就定义了往String类型转换的方法:
<span style="white-space:pre"> </span>byte[] bytes = new byte[]{1,2,4};
System.out.println(bytes);
结果输出是:[B@1b15692,
byte[] bytes = new byte[]{1,2,4};
System.out.println(Arrays.toString(bytes));
结果输出是:[1, 2, 4];但是切记,是Arrays.toString(),不是bytes.toString(). int数组、short数组均是这种形式。
但是:
char[] chars = new char[]{'1','2','3'};
System.out.println(chars);
输出是:123。就是直接按字符串输出了。
4、集合框架类:
List list = Arrays.asList("nimei","mausu","caoni");
List list1 = Arrays.asList(1,2,3);
System.out.println(list);
System.out.println(list1);
打印输出: 框架类中只有List可以被Arrays转化。
[nimei, mausu, caoni]
[1, 2, 3]
HashSet<String> hs = new HashSet<String>();
hs.add("B");
hs.add("A");
hs.add("D");
hs.add("E");
hs.add("C");
hs.add("F");
hs.add(null);
System.out.println("HashSet 顺序:\n"+hs);
打印输出:
HashSet 顺序:
[null, D, E, F, A, B, C]
但是如果set或者是list里面装的是其他的类(自己定义的类)就不行了。如下:
class Node {
int number;
Node nextNode;
Node(int i){
this.number=i;
}
// @Override
// public String toString() {
// // TODO Auto-generated method stub
// return ""+number;
// }
}
<span style="white-space:pre"> HashSet<Node> hashSet = new HashSet<Node>();
<span style="white-space:pre"> </span>hashSet.add(new Node(1));
<span style="white-space:pre"> </span>hashSet.add(new Node(2));
<span style="white-space:pre"> </span>hashSet.add(new Node(3));
<span style="white-space:pre"> </span>hashSet.add(new Node(4));
<span style="white-space:pre"> </span>hashSet.add(new Node(5));
<span style="white-space:pre"> </span>System.out.println(hashSet);</span>
打印输出的是:
[Node@18b3364, Node@530cf2, Node@181ed9e, Node@76fba0, Node@1db05b2]
如若,想正常打印,要重写toString:
class Node {
int number;
Node nextNode;
Node(int i){
this.number=i;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return ""+number;
}
}
<span> HashSet<Node> hashSet = new HashSet<Node>();
<span> </span>hashSet.add(new Node(1));
<span> </span>hashSet.add(new Node(2));
<span> </span>hashSet.add(new Node(3));
<span> </span>hashSet.add(new Node(4));
<span> </span>hashSet.add(new Node(5));
<span> </span>System.out.println(hashSet);</span>
//打印输出为[1, 3, 5, 4, 2];