黑马程序员技术交流社区
标题:
获取长度
[打印本页]
作者:
歌诗王道
时间:
2014-4-6 00:01
标题:
获取长度
本帖最后由 歌诗王道 于 2014-4-6 18:28 编辑
为什么获取数组长度的方法为 数组变量名.length,而字符串获取长度为 字符串型变量名.length()?毕老师说数组获取长度的length为属性,属性是什么意思,也可以有返回值吗?
作者:
Kelvinhu
时间:
2014-4-6 00:17
属性是类中定义的字段
作者:
╰青青子佩ˊゝ
时间:
2014-4-6 08:38
1.老师说的属性是指成员属性,成员属性就是对该类定义的一些成员变量属性,跟成员方法没有任何关系,那么自然也就没有返回值了。
2.数组中 的length是其成员变量,即数组的属性。而String中的length()是其获得长度的成员方法,不是成员变量,即不是属性。
作者:
xuehuayous
时间:
2014-4-6 08:59
这是我以前总结的,希望对你有帮助!
length属性,length()方法和size()的方法的区别和用法。
package cn.itcast;
import java.util.ArrayList;
import java.util.List;
public class Test{
public static void main(String args[]) {
/*length属性是针对数组说的,返回数组的长度*/
String[] b = {"Mick", "Lily", "Kevin"};
System.out.println(b.length); //3
/*length()方法是针对字符串String说的,返回字符串的长度*/
String a = "Mike,Lily,Kevin";
System.out.println(a.length()); //15
/*size()方法是针对泛型集合说的,返回集合中元素的个数*/
List<String> c = new ArrayList<String>();
c.add("Mike");
c.add("Lily");
c.add("Kevin");
System.out.println(c.size());//3
}
}
复制代码
总结:
length属性是针对数组说的,返回数组的长度
length()方法是针对字符串String说的,返回字符串的长度
size()方法是针对泛型集合说的,返回集合中元素的个数
作者:
也许依然
时间:
2014-4-6 10:44
.length是指属性,即随着类的产生而产生,随着类的消亡而消亡,数组在定义好了以后就有了一个大小,即它的长度
.length()是方法,它的返回值是int型,方法必须由变量或者类名调用,字符串的长度随着变量的不同有着不同的长度,所以它不是静态的,即由变量调用,返回的是变量所具有的字符个数
作者:
Peach2014
时间:
2014-4-6 14:38
你需要区分两点:
length:没带(),表示的是对象的属性
length():因为带着(),所以,表示的是对象中定义的方法
如:
class A
{
public int length;//对象的属性
public int length()//对象的方法
{
return length;
}
}
数组中将length作为一个属性直接保存,而String类型声明的对象,将length属性封装成到了方法length()中;
如果愿意,我们也可以给数组定义一个length()方法,给String类定义一个length属性,但是我们只能重新封装成一个类。java中它就是那么定义,那么定义是出于安全与规范的考虑,我觉得你只需要作为一个知识点,记一下就可以了!
作者:
海世山盟
时间:
2014-4-6 16:19
首先,我们看到的字符串String 他其实是一个类,和我们引用型数据 数组 有很大的区别。String类型的实例只要一加载到内存就会一直存在。既然String是一个类,你要求他的长度,那必须是 类名.方法名()。因此这里求取长度,是调用的String的方法。也就是length后面需要加括号。
而数组 他是一个引用型的数据,数组的长度只是其中的一种属性而已。(属性可以理解为一种事物的特征,特征描述如果没有返回值,怎么能具体呢?就好比:1。这里有一支铅笔“长”2.这里有一支铅笔“10厘米长”。 这里的长就是属性,第一个没有返回值,所以特征不具体,第二个10厘米就是属性 “长”的返回值所以会具体)
作者:
歌诗王道
时间:
2014-4-6 18:04
海世山盟 发表于 2014-4-6 16:19
首先,我们看到的字符串String 他其实是一个类,和我们引用型数据 数组 有很大的区别。String类型的实例只 ...
嗯,明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2