请问java的高手

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:06:31
for (int i = 0; i < m.length; i++) 跟
for (int i = 0; i < m.length(); i++)
里面的那m.length和m.length()有什么差别; 差别在哪里; 怎么用;
请告诉小弟下!! 谢谢了!

m.length 里的length是m的一个成员变量.
m.length() 里的length是m的一个方法, 通过方法得到m的一些信息.

在Java里一般不用第二种写法, 因为每次调用方法(尤其是成员方法)都会造成系统的开销, 尤其是在循环中反复的调用方法, 会消耗很多系统资源, 所以第二种情况一般是把 m.length() 获得到一个局部变量中, 然后作为循环的边界 :
int mlength = m.length();
for (int i = 0; i < mlength; i++) ...

比如说遍历ArrayList :
ArrayList list = new ArrayList();
...
int size = list.size();
for (int i = 0; i < size; i++)
...

m.length 是说m这个对象有length这个属性
m.length()是说m这个对象有length()这个方法

前一个m.length是m对象的属性,而后面调的m.length()方法

一个是public的方法,一个是public的属性

一个是length属性,一个是length()方法
属性是针对数组来说的,方法是针对字符串的。。
计算数组的长度,字符串的长度。

第一个m应该是个数组,第二个m应该是个字符串。
数组的属性length可知数组的大小,length()则是字符串的一个方法。