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

2025-01-07 04:31:34
推荐回答(5个)
回答1:

创建一个对象,比如 Employ emp = new Employ() ,Employ emp是声明一个emp的对象,此时是一个默认值为null的对象,此时也没有在堆中为该对象分配内存。new Employ()是调用默认构造函数,在堆中声明空间,这时候才完成初始化。Employ emp = new Employ()连起来就是声明一个对象,并在堆中分配空间,用emp指向已分配的空间地址,该空间地址上存储着emp对象的默认值。Employ()就是一个构造函数,在这里不调用构造函数,就没有做初始化。要初始化一个对象,并不是一定要有空参数的构造函数存在的,所以也可以调用其它有参的构造函数。

回答2:

对啊,那就是初始化啊。和构造方法的关系是:创建对象,就会调用构造方法。你只会用“创建”吗?创建不就是构造的意思么?那你完全可以说构造对象啊,这样能理解不?
首先想一想,怎么创建一个对象,比如class A{}, 创建对象时是不是new A(); 这个new A()就是调用A的无参构造方法。 那么你把该无参构造方法重写并修饰为private了,自然就不能类体外任何地方new A()了。你可以在此类中写一个public static A method()的方法,去规定一些构造时的动作,用A.method()去构造一个A对象。再说白一点,将无参构造方法修饰为private, 是包装的一种方式,防止类外其它方法中随意构造该类对象。

回答3:

对象 一定要初始化的。对象就好比一个人,你不给他起名字,没有性别怎么可以那 是吧。私有化了肯定不行啊 一般情况构造方法都是public的 你为什么要私有化那 是吧朋友

回答4:

有的对象不用初始化。。因为像你说的有默认值,跟构造函数没关联吧,

回答5:

java对象的实例化,就对java对象在java虚拟机上给他分配空间,然后你就可以使用该对象了,不然你就无法使用该对象的!构造函数是可以私有的,但必须是单例模式!