woaidongmao

文章均收录自他人博客,但不喜标题前加-[转贴],因其丑陋,见谅!~
随笔 - 1469, 文章 - 0, 评论 - 661, 引用 - 0
数据加载中……

java的new

我有一个A类,在B类里声明一个A类,但我不用 A a=new A();

我就直接申明一个A的属性方B类里面,请问这样有什么区别? 

 

=========================================

我就直接申明一个A的属性方B类里面,请问这样有什么区别?

这两者没有可比性,楼主的意思很明白

class B {
   public A a;
}

与 A  a = new A();

前者,a 是 B类的属性
当 B b = new B()的时候,a并没有分配空间,也就是说
b.a == null is true

除非这样写: 
class B {
   public A a=new A();
} 
========================================================
你是说 
A a;
和A a=new A(); 
的区别吧?

一个  是创建了A的引用 但没分配内存空间、、

一个是既分配的引用也创建了内存地址  把引用指向该内存 
========================================================
A a; 
//对象的声明,如果你不new就用a,会报空指针异常(NullpointException)

A a=new A(); 
已经在堆里开辟了内存。记住:没有new的对象是不能用的!!! 
 

posted on 2009-06-21 16:38 肥仔 阅读(204) 评论(0)  编辑 收藏 引用 所属分类: Web-后台


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理