黑马程序员技术交流社区

标题: String对象为什么可以直接调用方法 [打印本页]

作者: 李礼彬    时间: 2013-5-17 22:46
标题: String对象为什么可以直接调用方法
本帖最后由 李礼彬 于 2013-5-18 09:37 编辑
  1. String s1 = "eweabfaweab243abfaeriabfjireabjoio";
  2. String s2 = "ab";
  3. i = s1.indexOf(s2,i) ;
复制代码
s1是String型变量 ,就能够直接调用String类 里的方法啊?
作者: 刘治广    时间: 2013-5-17 22:53
因为String类里面有indexOf()这个方法,建议你下载个JDK API文档
作者: 王朋    时间: 2013-5-18 08:13
类的实例对象可以直接调用类的方法,s1就是string类的一个实例,由于indexof并不是一个静态方法,所以可以i = s1.indexOf(s2,i)这样调用。如果要调用一个静态方法,是要用类来调用,而不是用对象调用的。例如Format,调用的时候就要string.Format();
作者: 李礼彬    时间: 2013-5-18 09:36
刘治广 发表于 2013-5-17 22:53
因为String类里面有indexOf()这个方法,建议你下载个JDK API文档

谢了  :)
作者: 李礼彬    时间: 2013-5-18 09:37
王朋 发表于 2013-5-18 08:13
类的实例对象可以直接调用类的方法,s1就是string类的一个实例,由于indexof并不是一个静态方法,所以可以i ...

明白了,谢谢
作者: 周琪    时间: 2013-5-18 09:59
本帖最后由 周琪 于 2013-5-18 10:02 编辑

正如你所说的,s1是一个string的对象,这时候你拿反编译工具看的时候看先里面有C:\Users\Administrator\Desktop\无标题.png如下方法,给您附上截图。
所以可以调用。《即因为string内置了很多方法,就像你定义了一个类,并在这个类中定义了一些方法,所以你所定义的类的对象就能调用类中的方法。所以string的对象也能调用这些方法。你可以拿反编译工具看下。在网上下一个。。。》    (不好意思插入图片的时候,我不会删那个地址了。)

无标题.png (7.94 KB, 下载次数: 0)

无标题.png

作者: 刘治广    时间: 2013-5-19 00:19
李礼彬 发表于 2013-5-18 09:36
谢了

大家互相学习
作者: 王朋    时间: 2013-5-19 11:57
应为string类里面有这个方法,这样在创建一个实例的时候就可以直接点出来这个方法,这里都是c#的基础问题,多看看基础视频
另外如果是静态方法的话(关键字static)直接可以同过string点出来,没有实例也是可以的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2