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

© sjtree 中级黑马   /  2015-8-19 17:53  /  623 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

还有 为什么  System.in  System.out调用时后面不用加()

13 个回复

倒序浏览
length是代表对象的成员吧,而length();则是表示你调用了这个对象的方法,返回的是长度数值(int);System.in也是调用对象中的成员,本质是一个输入流对象。
回复 使用道具 举报
一个是成员变量,一个是成员方法
回复 使用道具 举报
length用在求数组的长度,length()是字符串的长度。
回复 使用道具 举报
学习了,谢谢分享~
回复 使用道具 举报
本帖最后由 pengbeilin 于 2015-8-20 09:58 编辑

数组的length即不是方法,也不是字段。在一个数组对象上调用length,会被Java编译器编译成一条arraylength指令(Java binary code)。
而访问字段的语句会被编译成getfield或getstatic指令,调用方法的语句则会被编译成invokestatic,invokevirtual或invokespecial等指令。
Java字节码中有许多单独针对数组的指令,它们在其它任何非数组类型的对象上调用都是毫无意义的。
由此可见,它们本就不一样,不能等同起来直接进行对比。

String里length()是一个方法




QQ截图20150819214100.png (54.31 KB, 下载次数: 1)

QQ截图20150819214100.png
回复 使用道具 举报
length 是数组的属性,代表数组的长度, length()是方法
回复 使用道具 举报
问题很好,来学习下
回复 使用道具 举报
一个是方法一个是属性
回复 使用道具 举报
带着同样的问题受教了!!
回复 使用道具 举报
嗯,是个问题。
回复 使用道具 举报
一个是数组的属性,一个是方法,带括号的是方法。
回复 使用道具 举报
mmppp 中级黑马 2015-8-20 17:31:03
13#
为什么System.out.println()是这个样子的呢
首先,System是一个类.类调用方法.所以是System.out
然后out不是一个方法啊.就是一个成员变量而已.就像你Student.name
name后面不是也不加吗,然后System.out这个的返回值是printStream类型的
这个你不知道没关系.然后既然是这个类型的对象,就可以调用这个类里面的方法
对吧.然后println()就是这个类里面的方法.
所以连起来才是System.out.println()这个样子的
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马