int i和 int i=new int()这两个有什么区别!为什么有的类直接实例化一个对象不用new 有的必须new一个?怎么判断到底是否需要用new关键字实例化一个对象?作者: Darkhorse′Xa 时间: 2014-3-13 22:48
int i=10;是微软提供的一种简写方式.跟创建int i=new int(),i这个对象后给i赋值一样的.
如果是静态类或者静态方法比如;Console就是个静态类那么就可以直接用类名来调用里面的静态成员,就不需要去实例化.作者: 百川 时间: 2014-3-14 00:36 本帖最后由 百川 于 2014-3-14 08:31 编辑
int i 只声明变量 i 并没有初始化 int,也就是说此时变量 i 并没有值。而是当赋值时初始化。
int i = new int 是先执行 int 的初始化,此时 i 的值为 0 。,然后将初始化好的int对象指向变量 i 。
在vs中断点调试一下可以知道结果。内置类一般不用new。自定义类需要使用new关键字。
经版主更正,int i 和int i=new int 的编译结果都是int i=0;个人觉得这个比较符合逻辑。但是int i若之后没有赋值生成时会报错,而int i=new int不会。求解释。
(我使用的版本是老师给的7.0)若不赋值生成时会将没有使用过的变量回收,赋值后的编译结果为int i;i =15的结果是int i =15;而int i =new int() ; i =15;的结果为int i =0;i =15。
作者: czwanglei 时间: 2014-3-14 07:44
百川 发表于 2014-3-14 00:36
int i 只声明变量 i 并没有初始化 int,也就是说此时变量 i 并没有值。而是当赋值时初始化。
int i = new i ...