黑马程序员技术交流社区

标题: 求大神解答毕老师视频中的疑惑,谢谢! [打印本页]

作者: trhthyj    时间: 2014-3-25 08:16
标题: 求大神解答毕老师视频中的疑惑,谢谢!
就是图中圈起来的两处,sop功能里面不是只能接收object类的子类对象吗?怎么下面连对象的getName,getAge方法都可以接收??求解答!
作者: zms2100    时间: 2014-3-25 08:28
下面的sop()语句传入的 p.getName()+ ": :"+p.getAge(); 相当于字符串String("+"除了是运算符还是字符串的连接符),而接收Object对象根据多态等特性也就可以接收String类型。
作者: trhthyj    时间: 2014-3-25 08:50
zms2100 发表于 2014-3-25 08:28
下面的sop()语句传入的 p.getName()+ ": :"+p.getAge(); 相当于字符串String("+"除了是运算符还是字符串的 ...

也就是说把括号里面的p.getName()+''::''+p.getAge()看成一个整体,而它们又是一个字符串,相当于String类的对象了,也就是Object类子类的对象,是这样吗?
作者: 追逐    时间: 2014-3-25 09:00
sop你可以简单的把他理解为System.out.println();这个输出语句的简写格式。
public static void sop(Object obj){  Object obj  是用类接收你要打印输出的内容
     System.out.println(obj);  相当于把你要输出的内容当成实参参放到sop函数中。然后通过调用该方法输出要输出的内容
}
作者: 月影释    时间: 2014-3-25 09:01
加在一起不就是字符串么
作者: 疯狂沙漠    时间: 2014-3-25 09:03
具体是这样的:

  1. String name =  p.getName();
  2. int age = p.getAge();

  3. String str = name +“::”+age;

  4. sop(str);
复制代码

作者: trhthyj    时间: 2014-3-25 09:59
疯狂沙漠 发表于 2014-3-25 09:03
具体是这样的:

哦,原来如此,明白了,谢谢大神
作者: trhthyj    时间: 2014-3-25 10:01
追逐 发表于 2014-3-25 09:00
sop你可以简单的把他理解为System.out.println();这个输出语句的简写格式。
public static void sop(Object ...

谢谢大神,就简单把它看做打印语句罢了
作者: tcny    时间: 2014-3-25 10:07
你说p.getName()+"::"+p.getAge()这是个什么类型呢?是不是相当于String str = p.getName()+"::"+p.getAge(); sop(str);而String就是object的子类了。

作者: trhthyj    时间: 2014-3-25 10:13
tcny 发表于 2014-3-25 10:07
你说p.getName()+"::"+p.getAge()这是个什么类型呢?是不是相当于String str = p.getName()+"::"+p.getAge( ...

嗯嗯,我以前是把它们分开看了
作者: zms2100    时间: 2014-3-25 10:29
trhthyj 发表于 2014-3-25 10:13
嗯嗯,我以前是把它们分开看了

这个应该是毕老师基础视频里用记事本等写的,到后面学MyEclipse后可以设置"快捷键",即设置输入sop,按Alt+/,就会出现对应语句,例: System.out.println("");等。
类似 输入pub,有时候IDE就会给你许多个关键字选择(例: public等)。
作者: 追逐    时间: 2014-3-25 11:14
trhthyj 发表于 2014-3-25 10:01
谢谢大神,就简单把它看做打印语句罢了

恩恩是的。你可以把他认为是一个固定的可以简写输出语句的格式就行了




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