哥! List 是 size() 好吗? String.length()(方法) int[].length(属性)
两个概念啊 length和length() 是不同的别记混了
楼主记住一点就好,在Java里,方法就是方法,属性就是属性,它们的写法就只有一种:方法是要带括号的,属性是绝对不允许带括号的,无一例外。 例如: 1.方法:方法名() String s = "hello"; int len = s.length();2.属性:属性名 int[] a = new int[10]; int len = a.length;
String.length() 方法
Array.length 属性
有括号的就是方法,没有就是属性了
在形如List这样的集合中“长度”的方法是size().
int[]这样的数组中length是属性
String类中length是方法。分析思路:
length在不同的类中它的定义不一样而已,比如:length在String中,它就定义为方法名,你非要问为什么?(那只能去问SUN公司的软件研发人员了)。
数组的length属性
String就是length()方法
Array.length 属性
哥! List 是 size() 好吗? String.length()(方法) int[].length(属性)
例如:
1.方法:方法名()
String s = "hello";
int len = s.length();2.属性:属性名
int[] a = new int[10];
int len = a.length;
字符串的事方法,对应的是属性count
String类里用它定义作了方法名,就是方法
在数组里定义成了属性,就是属性。。是方法还是属性要看是在哪个类里。想怎么定义都行。
Array.length 属性
java都是定长数组,类似的构造:
int[] arrInt = new int[3];
或者
int[] arrInt = new int[]{1,2,3};
所以,对于Array来说,length从构造开始,就永远不会发生变化.但是List和String,类似于Buffer,可变长.所以每次获取长度,其实是需要重新计算的.
当然内部实际操作可能用属性来描述,但不可能像Array一样直接暴露。
原因简单,对于对象内部维护的属性,暴露就有可能被外部赋值,这是绝对不允许的。而通过方法则可以保证外部无法修改私有的属性值
而Array的length其实申明的是final,因为他可以保证在构造之后就不会发生变化。