标题: 关于java面向对象实例的解释 [打印本页] 作者: 曾辉 时间: 2012-2-11 15:38 标题: 关于java面向对象实例的解释 class a
{
}
a A=new a();
a A;
new a;
a A=new a;
这四者有什么区别?作者: 尹旗龙 时间: 2012-2-11 15:47
a A=new a(); 声明并创建一个a的实例对象A,分配内存,将此部分内存的引用赋予A
a A;声明一个a的实例对象A,不分配内存 不创建对象
new a(); 是创建一个a的实例对象 分配内存
new a;
a A=new a; 这两个都是错的 必须有()没有()将造成编译错误,系统无法识别
a A; 等同于a A = null;作者: 张平 时间: 2012-2-11 16:10
以上基础之上我来补充两点:1.类名一般以大写字母开头(以小写字母开头虽不会报错,但不是常规写法),要养成好习惯哟!
2.a A; 等同于a A = null;后面没有new时相当于声明一个a的实例对象A(也可以理解为之创建了一个引用),但不分配内存。只有当后面有new时才 代表真正的分配了内存,创建好一个对象。
我也才刚开始学,一起加油咯!呵呵作者: 何洪森 时间: 2012-2-11 16:15
a A=new a();创建一个a的对象给引用A
a A; 声明一个a的引用。
new a();创建一个a的实例对象。
a A=new a;语法错误。如想用a去new一个对象,必须a A =new a(); 作者: 戴振良 时间: 2012-2-11 19:47 本帖最后由 戴振良 于 2012-2-11 20:02 编辑
从简单开始:
a A; // 声明了一个 类型为a 的 引用变量A,这个引用变量没有指向任何实例,系统没有为其分配内存
new a( ); //新建了一个 类型为a 的 实例,系统为其分配了内存,这样新建的实例一般只用来使用一次,因为没有引用变量指向它,下一次要使用这个实例我也不知道怎么再能找到它了
有了以上两个,下面这个就容易了,结合一下:
a A=new a( );// 左边声明了一个类型为a的引用变量A,右边新建了一个类型为a的实例,并把这个实例的首地址赋值给引用变量A