读过《Thinking in Java》中著名的一章“Everything is an object”,而且不止一遍,不过经过今天和Dreamhead的探讨,才发现我对Java中的“Everything is an object”的理解还是那么的不到位。

我和Dreamhead谈到我在研究Java 5.0时遇到的问题:

String[] s = {“Hello” ,
              “Tiger”,
              “!”};

现在我想用传统的for loop来打印出字符串数组内的每一个字符串,我的问题是我该如何获取这个数组内的元素个数。我便查询一下jdk的doc,发现String类有一个length()方法,我就在s上使用了,结果编译器提示“can not find the method”,我就很奇怪了,为什么查到了String类下有概method,而compiler却提示找不到呢?后来我也使用了s.length,编译也通过了,执行也正确了。但是我心中的疑惑一直没有解开。今天和Dreamhead讨论下一步项目的工作计划时提到了这个问题,Dreamhead首先就说出了“Everything is an object”,String s是一个object ,同样String[] s也是一个object,也就是说我应该将String[] 放在一起看作一个类型,而不仅仅认为这是个String 类型的静态数组。这样length作为String[]类型的一个field就顺理成章了,我也就茅塞顿开了。也许上面的问题对于java老手来说很easy或者说根本不屑一提,但是对于我这个由C++过渡到java的选手来言,理解这个是很重要的。

最后还是牢记“Everything is an object in java”。是不是我的题目有些大呀^_^。

“我们不仅仅是小小程序员,我们还是普通人。”—– Darwin_yuan

© 2004, bigwhite. 版权所有.

Related posts:

  1. Java 5.0新特性研究(一)
  2. C++ Advanced Training(二)
  3. CVS Primer
  4. 本不是第一篇的第一篇