A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 歌诗王道 中级黑马   /  2014-4-6 00:01  /  1176 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 歌诗王道 于 2014-4-6 18:28 编辑

为什么获取数组长度的方法为 数组变量名.length,而字符串获取长度为 字符串型变量名.length()?毕老师说数组获取长度的length为属性,属性是什么意思,也可以有返回值吗?

7 个回复

正序浏览
海世山盟 发表于 2014-4-6 16:19
首先,我们看到的字符串String 他其实是一个类,和我们引用型数据 数组 有很大的区别。String类型的实例只 ...

嗯,明白了
回复 使用道具 举报
首先,我们看到的字符串String 他其实是一个类,和我们引用型数据 数组 有很大的区别。String类型的实例只要一加载到内存就会一直存在。既然String是一个类,你要求他的长度,那必须是    类名.方法名()。因此这里求取长度,是调用的String的方法。也就是length后面需要加括号。
而数组 他是一个引用型的数据,数组的长度只是其中的一种属性而已。(属性可以理解为一种事物的特征,特征描述如果没有返回值,怎么能具体呢?就好比:1。这里有一支铅笔“长”2.这里有一支铅笔“10厘米长”。 这里的长就是属性,第一个没有返回值,所以特征不具体,第二个10厘米就是属性 “长”的返回值所以会具体)
回复 使用道具 举报
你需要区分两点:
length:没带(),表示的是对象的属性
length():因为带着(),所以,表示的是对象中定义的方法
如:
class A
{
        public int length;//对象的属性
        public int length()//对象的方法
        {
                return length;
        }
}
数组中将length作为一个属性直接保存,而String类型声明的对象,将length属性封装成到了方法length()中;如果愿意,我们也可以给数组定义一个length()方法,给String类定义一个length属性,但是我们只能重新封装成一个类。java中它就是那么定义,那么定义是出于安全与规范的考虑,我觉得你只需要作为一个知识点,记一下就可以了!
回复 使用道具 举报 1 0
.length是指属性,即随着类的产生而产生,随着类的消亡而消亡,数组在定义好了以后就有了一个大小,即它的长度

.length()是方法,它的返回值是int型,方法必须由变量或者类名调用,字符串的长度随着变量的不同有着不同的长度,所以它不是静态的,即由变量调用,返回的是变量所具有的字符个数
回复 使用道具 举报
这是我以前总结的,希望对你有帮助!
length属性,length()方法和size()的方法的区别和用法。
  1. package cn.itcast;

  2. import java.util.ArrayList;
  3. import java.util.List;

  4. public class Test{
  5.         public static void main(String args[]) {
  6.                
  7.                 /*length属性是针对数组说的,返回数组的长度*/
  8.                 String[] b = {"Mick", "Lily", "Kevin"};
  9.                 System.out.println(b.length); //3
  10.                
  11.                 /*length()方法是针对字符串String说的,返回字符串的长度*/
  12.                 String a = "Mike,Lily,Kevin";
  13.                 System.out.println(a.length()); //15
  14.                
  15.                 /*size()方法是针对泛型集合说的,返回集合中元素的个数*/
  16.                 List<String> c = new ArrayList<String>();
  17.                 c.add("Mike");
  18.                 c.add("Lily");
  19.                 c.add("Kevin");
  20.                 System.out.println(c.size());//3
  21.         }
  22. }
复制代码

总结:
length属性是针对数组说的,返回数组的长度
length()方法是针对字符串String说的,返回字符串的长度
size()方法是针对泛型集合说的,返回集合中元素的个数

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1.老师说的属性是指成员属性,成员属性就是对该类定义的一些成员变量属性,跟成员方法没有任何关系,那么自然也就没有返回值了。
2.数组中 的length是其成员变量,即数组的属性。而String中的length()是其获得长度的成员方法,不是成员变量,即不是属性。
回复 使用道具 举报
属性是类中定义的字段
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马