黑马程序员技术交流社区

标题: int x = new int() ;为什么不行啊? [打印本页]

作者: 黑色幽默K    时间: 2015-3-22 17:23
标题: int x = new int() ;为什么不行啊?
int x = new int();
x = 5;
是不是引用型数据变量和基本数据类型变量的不同呢?
作者: Hksangs    时间: 2015-3-22 17:37
这是在干什么的。
作者: 万合天宜    时间: 2015-3-22 17:51
本帖最后由 万合天宜 于 2015-3-23 08:39 编辑

引用数据变量有数组,字符串和类,因此都采用地址表示,数组字符串还是直接复制,但是对象得new出来才行
基本数据类型直接定义就行例如: int x ; 或 int x = 1

作者: Searching    时间: 2015-3-22 17:53
基本类型不能用new,但基本类型的包装类就可以
作者: 山里孩子    时间: 2015-3-22 18:01
new是引用型数据用的.x是基础数据.
作者: 黑色幽默K    时间: 2015-3-22 19:35
万合天宜 发表于 2015-3-22 17:51
引用数据变量有数组,字符串和对象,因此都采用地址表示,数组字符串还是直接复制,但是对象得new出来才行
...

应用数据类型应该还有接口才对嘛!版主大人!
作者: Mr.南郭    时间: 2015-3-22 20:36
java中的8种基本数据类型是不支持面向对象的编程机制的,也就是不具备“对象”的特性,所以new int()就是一个非法表达,java是不识别的,如果要把基本类型变量指向一个对象,那么这个对象就是将基本数据类型进行包装的包装类,可用 int x = new Integer(555);来表示。java1.5后支持包装类的自动装箱和拆箱,很方便的,例如Integer num = 5就是将一个基本类型变量赋给Integer对象,这样num作为对象就可以调用一些方法(例如num.toString将数字555转换成字符串555等)。
作者: hushaoliang    时间: 2015-3-22 20:46
类名不能使用关键词
作者: pkdo0    时间: 2015-3-22 20:55
int类型是基础类型,int类型没有继承Object类,Integer类型才是继承了Object类型,具有面向对象的概念。
还有map,list这些容器都不能装int类型的对象,要装只能装Integer类型的对象
作者: 卢乾荣    时间: 2015-3-22 21:34
基本类型可以直接赋值,引用类型获得的是地址值,你左边是基本类型,右边是new()对象也就是内存地址,编译肯定要报错的
作者: tinyvampire    时间: 2015-3-22 21:47
int x=5;或者int[] Arr = new int[];
作者: tinyvampire    时间: 2015-3-22 21:49
class Demo
{  }
main()
{
    Demo d = new Demo();
}
这个是引用数据变量
作者: 温大帅    时间: 2015-3-22 23:38
基本数据类型不能用new的,如果非要new出一个整数,可以用Integer
作者: 932773877    时间: 2015-3-23 00:49
int x=new int();你这不像数组你到堆里面去创造内存干嘛?
作者: HMjack168    时间: 2015-3-23 10:04
同8楼。
作者: Jaybor    时间: 2015-3-23 10:30
恩,int不是一个类,而是基本类型的变量啊
作者: wkz_crystal    时间: 2015-3-23 13:14
恩,要引用对象,直接用Integer就行,基本类型怎么能新创建呢?




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