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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int i=0;
  6.                 p(i);
  7.         }
  8.        
  9.         public static void p(Object o)
  10.         {
  11.                 System.out.println(o);       
  12.         }       
  13. }
复制代码

为什么形参类型为Object可以去接受基本数据类型int?不是说如果实参为对象时形参的类型必须为改对象所属类或者其父类吗?难道说int型变量是对象?
如果int型变量是对象,那我直接调用  i.equoals()  又不行,好矛盾,菜鸟求大神来解释下→_→

QQ截图20150417175439.png (4.55 KB, 下载次数: 5)

QQ截图20150417175439.png

2 个回复

倒序浏览
java有自动装箱拆箱操作,所谓装箱,就是把基本数据类型变为对应的引用类型,拆箱则是把引用类型变为基本数据类型,在这里,p()引用i的时候,i自动装箱成Integer()对象使用。相当于p(new Integer(i))
回复 使用道具 举报
在java中object类是一切类的父类
可以为 Object 的变量分配任何引用类型(字符串、数组、类或接口)。Object 变量还可以引用任何值类型(数值、Boolean、Char、Date、结构或枚举)的数据
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马