java 中length是方法还是属性
解决方案 »
- android运行的问题
- 请高手解释一下这断代码,及this的这些语法
- 为什么中级程序设计中有许多接口和抽象类??
- 时间比较的问题
- 新手问关于计算器的一个奇怪问题
- 我连oracle为何总报错?请大家指点一下。。。。。。在下愿高分奉送。。
- 我想在任意的目录下都能使用javac abc,java abc这样的省略路径形式,怎么设置环境变量?
- Graphic2D画了一个矩形, 如何使用斜线填充?
- [Good News]随着IBM WSAD 5.1的推出,eclipse 2.1.x的多语言包也有了!
- 做毕业设计,想用JAVA或JSP,各位有什么好的建议?
- 编译书上一道关于SimpleDateFormat的程序报错,各位帮忙看看。。
- 求助 关于 java
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,因为他可以保证在构造之后就不会发生变化。