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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李健_8 中级黑马   /  2012-10-11 12:14  /  1286 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李健_8 于 2012-10-11 13:35 编辑

package Stringlei;
public class StringDemo {
public static void main(String[] args){
  method_get();
}
public static void method_get(){
  String str="abcfghijk";
  //长度
  sop(str.length());  //sop方法声明的是传入一个数据类型 而此处却是传入一个方法 为什么却可以运行
}
public static void sop(Object obj){   //此处声明的是传入一个数据类型
  System.out.println(obj);
}
}

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 赞一个!

查看全部评分

6 个回复

倒序浏览
str.leng()的返回值是int
回复 使用道具 举报
首先,在java中Object就上上帝,任何对象都是其子民。
再次,sop(str.length());  传入的不是一个方法,是一个int型数据。

评分

参与人数 1黑马币 +3 收起 理由
李健_8 + 3 赞一个!

查看全部评分

回复 使用道具 举报
首先,你没有对Object 这个超级类的理解,Object 类可以接受一切引用变量。也就是上帝类。而sop(str.length()),这是str.length();返回的是一个字符的长度,相当于str.length()=一个整数,把你的那个语句变一下,sop(整数);你的疑惑应该是对str.length()的返回类型不明确。
回复 使用道具 举报
亲,str.length()返回一个int类型
public static void sop(Object obj){   //此处声明的是传入一个数据类型
当然当str.length()的返回值传递给obj的时候传递的是int的包装类型Integer。
回复 使用道具 举报
本帖最后由 廖智 于 2012-10-11 13:33 编辑
张忠豹 发表于 2012-10-11 13:10
亲,str.length()返回一个int类型
public static void sop(Object obj){   //此处声明的是传入一个数据类型 ...


str.length()); 传入的是一个int型变量。
sop(str.length()); 接收int的是Integer对象。这是jdk1.5以后有的新特性。这里有个自动装箱动作。这里相当于Object obj = new Integer
注意:jdk1.5后。只要是基本数据类型Object都能接收。接收时会先把基本数据类型转成对应的基本数据类型对象包装类。
回复 使用道具 举报
廖智 中级黑马 2012-10-11 13:37:52
7#
本帖最后由 廖智 于 2012-10-11 13:44 编辑
廖智 发表于 2012-10-11 13:32
str.length());  传入的是一个int型变量。
sop(str.length()); 接收int的是Integer对象。这是jdk1.5以后 ...

package Stringlei;
public class StringDemo {
public static void main(String[] args){
  method_get();
}
public static void method_get(){
  String str="abcfghijk";
  //长度
  sop(str.length());   { 这里结果为9 ,是一个int型数据。
}
public static void sop(Object obj){  这里相当于 Object obj = 9也相当于Object obj = new Integer(9)。这里有一个自动装箱动作,jdk1.5后的新特性。
  System.out.println(obj);
}
}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马