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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© trhthyj 中级黑马   /  2014-3-25 08:16  /  1203 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

就是图中圈起来的两处,sop功能里面不是只能接收object类的子类对象吗?怎么下面连对象的getName,getAge方法都可以接收??求解答!

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

11 个回复

倒序浏览
下面的sop()语句传入的 p.getName()+ ": :"+p.getAge(); 相当于字符串String("+"除了是运算符还是字符串的连接符),而接收Object对象根据多态等特性也就可以接收String类型。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
zms2100 发表于 2014-3-25 08:28
下面的sop()语句传入的 p.getName()+ ": :"+p.getAge(); 相当于字符串String("+"除了是运算符还是字符串的 ...

也就是说把括号里面的p.getName()+''::''+p.getAge()看成一个整体,而它们又是一个字符串,相当于String类的对象了,也就是Object类子类的对象,是这样吗?
回复 使用道具 举报
sop你可以简单的把他理解为System.out.println();这个输出语句的简写格式。
public static void sop(Object obj){  Object obj  是用类接收你要打印输出的内容
     System.out.println(obj);  相当于把你要输出的内容当成实参参放到sop函数中。然后通过调用该方法输出要输出的内容
}

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
加在一起不就是字符串么
回复 使用道具 举报
具体是这样的:

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

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

  4. sop(str);
复制代码

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报

哦,原来如此,明白了,谢谢大神
回复 使用道具 举报
追逐 发表于 2014-3-25 09:00
sop你可以简单的把他理解为System.out.println();这个输出语句的简写格式。
public static void sop(Object ...

谢谢大神,就简单把它看做打印语句罢了
回复 使用道具 举报
tcny 中级黑马 2014-3-25 10:07:14
9#
你说p.getName()+"::"+p.getAge()这是个什么类型呢?是不是相当于String str = p.getName()+"::"+p.getAge(); sop(str);而String就是object的子类了。
回复 使用道具 举报
tcny 发表于 2014-3-25 10:07
你说p.getName()+"::"+p.getAge()这是个什么类型呢?是不是相当于String str = p.getName()+"::"+p.getAge( ...

嗯嗯,我以前是把它们分开看了
回复 使用道具 举报
trhthyj 发表于 2014-3-25 10:13
嗯嗯,我以前是把它们分开看了

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

恩恩是的。你可以把他认为是一个固定的可以简写输出语句的格式就行了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马