黑马程序员技术交流社区

标题: 数组的打印语句。 [打印本页]

作者: 黄战胜    时间: 2011-12-28 17:10
标题: 数组的打印语句。
今天看到加强班视频,才发现数组不能用直接用System.out.println();打印,然后就翻了JDK手册,这些基本数据类型的数值都没有在JDK手册中有具体的对象体现出来。没有封装过。这个System.out.println()语句打印的时候是不是就是调用对象的toString()方法,数组没有相应类,所以没有toString()方法,所以不能直接打印,如果打印要用遍历的方法。不知说的是否正确???
作者: 曾运    时间: 2011-12-28 17:34
System.out.println(数组名称); //打印的是栈内存中的一个引用变量 ,它指向了堆内存的实体,打印数组引用就是: 类型@内存地址
下面的代码看看。{:soso_e112:}
  1. public class Demo
  2. {


  3.         public static void main(String[] args)
  4.         {
  5.                 Person per[]=new Person[2];//对象数组
  6.                 per[0]=new Person("aa",12);
  7.                 per[1]=new Person("bb",22);
  8.                
  9.                 System.out.println(per);//Person;@1c78e57
  10.                 System.out.println(per[0]);//姓名:aa 年龄:12
  11.                
  12.                
  13.                 int a[]={1,2,3};//整型数组
  14.                 System.out.println(a);//[I@5224ee
  15.                 System.out.println(a[0]);// 1

  16.         }
  17.    
  18.        
  19.    
  20. }


  21. class Person
  22. {
  23.         String name;
  24.         int age;
  25.         Person(String name,int age)
  26.         {
  27.                 this.name=name;
  28.                 this.age=age;
  29.         }
  30.        
  31.        
  32.         public String toString()//重写toString 方法
  33.         {
  34.                 return "姓名:"+this.name+" 年龄:"+this.age;
  35.         }

  36. }
复制代码

作者: 罗利民    时间: 2011-12-28 18:22
本帖最后由 罗利民 于 2011-12-28 18:24 编辑

System.out.println()语句打印的时候 是 调用对象的toString()方法
数组可以用System.out.println()打印,就像楼上的说的,打印的是数组的引用值而已

关于楼主说的“数组没有相应类,所以没有toString()方法,所以不能直接打印”
这句话不太正确吧?
数组是个引用类型,你说的相应类也是引用类型,所以没有数组没有相应类的这种说法。
而且数组里的元素是可以为引用类型的。
如果遍历打印数组可以用 foreach (type identifier in expression) statement ;
如:int[] arr = { 0, 1, 2, 3, 4 };  
    foreach (int i in arr)   
       { System.out.println(i);}
呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2