黑马程序员技术交流社区

标题: [已解决]基本类型不属于Object?那我为什么赋值是Object = 1... [打印本页]

作者: hello world    时间: 2012-8-5 22:38
标题: [已解决]基本类型不属于Object?那我为什么赋值是Object = 1...
本帖最后由 刘向阳 于 2012-8-5 22:53 编辑

基本类型不属于Object?那我为什么赋值是Object = 1;可以这个样子赋值呢   求帮住
作者: 王龙彪    时间: 2012-8-5 22:40
基本数据类型不是引用数据类型
Object = 1; 这句话本身就是错的哈
作者: 朱烈葵    时间: 2012-8-5 22:41
自动装箱,1变成Integer不是赋值,是多态,引用吧
作者: 胡文凡    时间: 2012-8-5 22:46
就比如可以这样定义
Integer t1= 1;
Integer t2=2;
System.out.println(t1+t2);
这都是自动装箱拆箱

作者: 余明辉    时间: 2012-8-5 22:47
这里是多态的存在,1可以自动装箱成为一个Integer对象,而Integer是Object
为了验证这一说法,我用反射做了下,代码如下,希望可以帮到你
public class ObjectTest {
        public static void main(String[] args) {
                Object obj = 1;
                System.out.println(obj);
                                    //拿到obj的class,打印出名字看看
                System.out.println(obj.getClass().getName());
        }
}


作者: 于启会    时间: 2012-8-5 22:48
基本数据类型只有8种  byte, short, int, lang, double, float ,boolean, char
剩下的都不是基本数据类型
Object是所有类型的父类,所以能赋值的
作者: 瞿乐    时间: 2012-8-5 22:48
这句代码有问题吧,没有这样赋值啊,编译不可以通过的
作者: hello world    时间: 2012-8-5 22:52
恩,是自动装箱,谢了个位,明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2