java中,对象必须(一定)要初始化吗?如果把空参数的构造函数私有化了,为什么对象会创建失败呢?

创建了对象,堆内存中该对象的成员变量有了默认值,这不算初始化吗?和构造函数有何相干呢?... 创建了对象,堆内存中该对象的成员变量有了默认值,这不算初始化吗?和构造函数有何相干呢? 展开
 我来答
shoushou2001
推荐于2017-09-16 · TA获得超过273个赞
知道答主
回答量:221
采纳率:100%
帮助的人:129万
展开全部
创建一个对象,比如 Employ emp = new Employ() ,Employ emp是声明一个emp的对象,此时是一个默认值为null的对象,此时也没有在堆中为该对象分配内存。new Employ()是调用默认构造函数,在堆中声明空间,这时候才完成初始化。Employ emp = new Employ()连起来就是声明一个对象,并在堆中分配空间,用emp指向已分配的空间地址,该空间地址上存储着emp对象的默认值。Employ()就是一个构造函数,在这里不调用构造函数,就没有做初始化。要初始化一个对象,并不是一定要有空参数的构造函数存在的,所以也可以调用其它有参的构造函数。
掌心童话
2013-07-29 · TA获得超过291个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:55.6万
展开全部
对啊,那就是初始化啊。和构造方法的关系是:创建对象,就会调用构造方法。你只会用“创建”吗?创建不就是构造的意思么?那你完全可以说构造对象啊,这样能理解不?
首先想一想,怎么创建一个对象,比如class A{}, 创建对象时是不是new A(); 这个new A()就是调用A的无参构造方法。 那么你把该无参构造方法重写并修饰为private了,自然就不能类体外任何地方new A()了。你可以在此类中写一个public static A method()的方法,去规定一些构造时的动作,用A.method()去构造一个A对象。再说白一点,将无参构造方法修饰为private, 是包装的一种方式,防止类外其它方法中随意构造该类对象。
追问
那请问下,构造函数初始化和显示初始化值有区别不?显示初始化没有通过构造函数中参数来传递。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xb_447215
2013-07-29 · TA获得超过2038个赞
知道大有可为答主
回答量:3702
采纳率:0%
帮助的人:3937万
展开全部
对象 一定要初始化的。对象就好比一个人,你不给他起名字,没有性别怎么可以那 是吧。私有化了肯定不行啊 一般情况构造方法都是public的 你为什么要私有化那 是吧朋友
追问
是不是对象想要初始化必须有空参数的构造函数存在,或者说通过构造函数才可以对对象进行初始化
追答
是的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
啦啦的乐乐
2013-07-29
知道答主
回答量:14
采纳率:0%
帮助的人:13.7万
展开全部
有的对象不用初始化。。因为像你说的有默认值,跟构造函数没关联吧,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抱爱的人睡
2013-07-29 · TA获得超过865个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:147万
展开全部
java对象的实例化,就对java对象在java虚拟机上给他分配空间,然后你就可以使用该对象了,不然你就无法使用该对象的!构造函数是可以私有的,但必须是单例模式!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式