VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 757|回复: 8

new Integer()和new int[3]的困惑??

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-20 03:20:01 | 显示全部楼层 |阅读模式
1.我自己写了一个类,代码如下:
public class Test {
        private final int i;
        public Test(int i) {
                // TODO Auto-generated constructor stub
                this.i = i;
        }

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                System.out.println(new Test(123));
                System.out.println(new Integer(123));

        }

}
为什么System.out.println(new Test(123));的结果是Test@35ce36
而System.out.println(new Integer(123));的结果是123 ?不解。。。。

2.int[] j=new int[3];int[]是个类吗?为什么可以new int[3]呢?


多谢各位指点。。。。。。
回复

使用道具 举报

1

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-1-28 11:27:02 | 显示全部楼层
个人理解。一般自定义的类,直接输出的话,会输出这个对象的内存地址类似Test@35ce36.而这些包装类会输出它所表示的值,我也没深入想过
回复

使用道具 举报

0

主题

10

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-29 13:36:02 | 显示全部楼层
你没有覆盖 toString()方法,System.out.println(par) 会调用par的toString()方法。
public class Test {
        private final int i;
        public Test(int i) {
                // TODO Auto-generated constructor stub
                this.i = i;
        }
        public String toString(){
            StringBuffer tmp = new StringBuffer();
            tmp.append(i);
            return tmp.toString();
        }
        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                System.out.println(new Test(123));
                System.out.println(new Integer(123));

        }

}

这样出来就会有了,
呵呵!
回复

使用道具 举报

0

主题

10

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-29 15:00:02 | 显示全部楼层
int[] j=new int[3];是定义一个整数数组,可以放入3个整数。

回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-29 19:45:02 | 显示全部楼层
catmay仁兄我知道new int[3]是定义个整数数组,我想知道,int[]是一个类吗?不然为什么能new它呢
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-29 20:27:01 | 显示全部楼层
1 System.out.println(new Test(123));中,new Test(123)你打印的是一个类,它会调用"默认"的toString方法,如果你想打印出想要的结果,需要覆盖toString方法。

2 int[] j=new int[3];表示定义了一个含3个元素的int型数组j

呵呵,好久没看这些基础知识了,可能都忘了,应该是这么理解的吧
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-30 12:45:01 | 显示全部楼层
各位大哥可能误解我的意思了,我知道int[] j=new int[3];表示定义了一个含3个元素的int型数组j,我想问的是:只有当int[] 是一个类的时候才可以创建它的一个对象吧?但是int[]是一个对象吗?为什么我不能看它的源码呢?困惑。。。。。。。
回复

使用道具 举报

1

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-2-13 15:30:01 | 显示全部楼层
我觉得那只是数组初始化的一个方式而已
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-16 19:15:01 | 显示全部楼层
所有的数组都是一个类,你可以用Class类的isArray方法来判断一个对象是不是数组。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表