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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高双武 黑马帝   /  2011-11-17 09:22  /  1696 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package execisetest;
import java.util.*;
public class CollectionTest {
        public static void main(String [] args){
                ArrayList al=new ArrayList();
               
                al.add(3);
                al.add("jacaa");               
                sop(al);               
        }
        public static void sop(Object obj){
                System.out.println(obj);
        }
}
al.add(3);
这里的3是不是装箱成了Integer对象?如果我想输出存储3的内存地址,可以吗?

评分

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

查看全部评分

3 个回复

倒序浏览
坚强 黑马帝 2011-11-17 15:25:39
沙发
  是的,相当与 new Integer(3);
  输出地址方法我不知道为什么,但是可行
  1. import java.util.*;
  2. public class CollectionTest {
  3.         public static void main(String [] args){
  4.                 ArrayList al=new ArrayList();
  5.                
  6.                 al.add(new pp("3"));
  7.                 al.add(new pp("jacaa"));               
  8.                 System.out.println(al);         
  9.         }
  10.         public static void sop(Object obj){
  11.                 System.out.println(obj);
  12.         }
  13. }
  14. class pp
  15. {
  16.         private String name;
  17.         pp(String name)
  18.         {
  19.           this.name=name;
  20.         }
  21. }
复制代码
把对象封装,不封装会自动制表打印输出结果如下:

1.jpg (4.79 KB, 下载次数: 6)

1.jpg

2.jpg (5.32 KB, 下载次数: 6)

2.jpg

评分

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

查看全部评分

回复 使用道具 举报
这就是关系到Integer的toString方法被重写了
public String toString() {
        return String.valueOf(value);
    }
hashCode方法也重写了,
  public int hashCode() {
        return value;
    }
你若想实现你的要看的结果,可以删掉这两个方法,但实验完后情该变过来
在eclipse中你应该会看他的源码把。

评分

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

查看全部评分

回复 使用道具 举报
我也觉得是封装了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马