A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

想到一个问题,就是构造函数内初始化对象和类成员初始化对象有没有什么区别,都是在对象被创建的时候初始化的.比如
class Person
{
public Test t = null;//构造函数初始化对象
public Person()
{
t = new Test();
}

public Test t1 = new Test();//类成员直接初始化对象


}
class Test
{

}

10 个回复

正序浏览

我的理解是这样的,除非有Hibernate的对象关系映射应该是不会为null的
回复 使用道具 举报
Bule丶 发表于 2014-7-31 17:39
你的Person类如果有别的构造函数,你在实例化的时候显示指定了某个构造函数,无参构造函数里的Test类就不会 ...

嗯 谢谢!
回复 使用道具 举报
你的Person类如果有别的构造函数,你在实例化的时候显示指定了某个构造函数,无参构造函数里的Test类就不会被实例化,如果你直接调用了会报空指针异常,但是外面的不会,外面的在你的Person类实例化的时候就会被同时实例化
回复 使用道具 举报
fantacyleo 发表于 2014-7-31 16:28
定义时直接初始化,那就是把初始化的内容写死了啊。通过向构造函数传递参数,可以按需初始化 ...

恩恩 谢谢,知道了
回复 使用道具 举报
练习题 发表于 2014-7-31 16:19
构造函数可以初始化一个对象是吧,  定义类成员对象的时候也可以直接初始化创建对象的是吧,就是说这两种有 ...

定义时直接初始化,那就是把初始化的内容写死了啊。通过向构造函数传递参数,可以按需初始化
回复 使用道具 举报

构造函数可以初始化一个对象是吧,  定义类成员对象的时候也可以直接初始化创建对象的是吧,就是说这两种有什么区别
回复 使用道具 举报
liubea 发表于 2014-7-31 13:59
代码有问题,会进入死循环。

晕不是我只是举一个例子,不是让你跑代码
回复 使用道具 举报
我看不懂!
回复 使用道具 举报
代码有问题,会进入死循环。
回复 使用道具 举报
有谁知道吗,帮帮忙
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马