//
int       iArrayUpperBound
String    sArrayTest = {"1","2","3","4"}//
iArrayUpperBound = sArrayTest.length--------------------
sArrayTest.length,可以看出来sArrayTest应该是一个对象,因为他有域"length",
我查看API java.lang.String,没有lengh这个域,看继承层次,是从java.lang.object继承来的,但是java.lang.object也没有域"length",我就晕了,sArrayTest 究竟是哪路神仙啊,请大家讲解一下,谢谢!

解决方案 »

  1.   

    String    sArrayTest = {"1","2","3","4"} 这样可以吗? String 类型MS不能这样写吧
      

  2.   

    就你本身的讨论而言 应该是这样的代码才对
        int       iArrayUpperBound;
       String    sArrayTest[] = {"1","2","3","4"};//
    iArrayUpperBound = sArrayTest.length;
       System.out.println(iArrayUpperBound);
    最后输出是4 ,这样的话 sArrayTest不是String 类型的  是数组类型的 sArrayTest当然是对象
      

  3.   

    数组只是一个列在同一个标识符名下的简单序列,这个序列皆可以是primitive的,也可以是同一种类型的对象的
      

  4.   

    String    sArrayTest[] = {"1","2","3","4"};
    {"1","2","3","4"};--------->不是String,是String[]
      

  5.   

    你的问题和我原来有个问题类似,可以去看看:http://community.csdn.net/Expert/TopicView3.asp?id=5584610这个 length 是在编译加上去的。
      

  6.   

    数组当然是对象,因为你可以用“new”生成数组。其实我认为凡是能用“new”生成的就都是对象,Java里。
      

  7.   

    我最近在学C#,在C#中,规定所有的数组都是从System.array中出来的。
    那数组也是对象。
    我想这点上,C#和Java应该是一样的吧。
      

  8.   

    bao110908(长牙了,好痛) ( ) 信誉:100
    你的问题和我原来有个问题类似,可以去看看:http://community.csdn.net/Expert/TopicView3.asp?id=5584610这个 length 是在编译加上去的。
    ------------------------------------------------------------
    那里面已经说的很详细了.
    之所以说要把数组看成对象,把length看成域,完全是因为要符合java一切是对象的思想.
      

  9.   

    谢谢,结贴
    http://community.csdn.net/Expert/TopicView3.asp?id=5584610