java中,对象必须(一定)要初始化吗?如果把空参数的构造函数私有化了,为什么对象会创建失败呢?
5个回答
展开全部
创建一个对象,比如 Employ emp = new Employ() ,Employ emp是声明一个emp的对象,此时是一个默认值为null的对象,此时也没有在堆中为该对象分配内存。new Employ()是调用默认构造函数,在堆中声明空间,这时候才完成初始化。Employ emp = new Employ()连起来就是声明一个对象,并在堆中分配空间,用emp指向已分配的空间地址,该空间地址上存储着emp对象的默认值。Employ()就是一个构造函数,在这里不调用构造函数,就没有做初始化。要初始化一个对象,并不是一定要有空参数的构造函数存在的,所以也可以调用其它有参的构造函数。
展开全部
对啊,那就是初始化啊。和构造方法的关系是:创建对象,就会调用构造方法。你只会用“创建”吗?创建不就是构造的意思么?那你完全可以说构造对象啊,这样能理解不?
首先想一想,怎么创建一个对象,比如class A{}, 创建对象时是不是new A(); 这个new A()就是调用A的无参构造方法。 那么你把该无参构造方法重写并修饰为private了,自然就不能类体外任何地方new A()了。你可以在此类中写一个public static A method()的方法,去规定一些构造时的动作,用A.method()去构造一个A对象。再说白一点,将无参构造方法修饰为private, 是包装的一种方式,防止类外其它方法中随意构造该类对象。
首先想一想,怎么创建一个对象,比如class A{}, 创建对象时是不是new A(); 这个new A()就是调用A的无参构造方法。 那么你把该无参构造方法重写并修饰为private了,自然就不能类体外任何地方new A()了。你可以在此类中写一个public static A method()的方法,去规定一些构造时的动作,用A.method()去构造一个A对象。再说白一点,将无参构造方法修饰为private, 是包装的一种方式,防止类外其它方法中随意构造该类对象。
追问
那请问下,构造函数初始化和显示初始化值有区别不?显示初始化没有通过构造函数中参数来传递。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对象 一定要初始化的。对象就好比一个人,你不给他起名字,没有性别怎么可以那 是吧。私有化了肯定不行啊 一般情况构造方法都是public的 你为什么要私有化那 是吧朋友
追问
是不是对象想要初始化必须有空参数的构造函数存在,或者说通过构造函数才可以对对象进行初始化
追答
是的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有的对象不用初始化。。因为像你说的有默认值,跟构造函数没关联吧,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java对象的实例化,就对java对象在java虚拟机上给他分配空间,然后你就可以使用该对象了,不然你就无法使用该对象的!构造函数是可以私有的,但必须是单例模式!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询