在java里,能不能在方法体里调用本类的构造函数创建对象?

2024-12-15 09:58:20
推荐回答(4个)
回答1:

简单地的打个比方
类:是一种抽象,你可以认为它是唯一的。当类有静态属性或方法时,就表现出来了。
实例:是类的具体,它不是唯一的
你的例子Cust student=new Cust();
实际上是另一个对象了!!!你操作的是别的东西(不管它们是不是同一个类),假如这个类不是Cust,你应该就不会这样惊讶了。

比如类:人
它的实例:张三、李四
在张三的某个方法里,产生了李四,

回答2:

java 是可以在本类调用自身的构造方法的,你写一个单例模式的类就知道了

回答3:

分配的内存地址空间不同,不用惊奇,其实并不是同一个对象的
这就相相于, 类是爸爸, 方法是儿子, 儿子去叫其他人的爸爸去做事(打个打工的)完全可以,虽然都是爸爸,可这是另外一个人的爸爸

回答4:

语法角度是可以的。“可这个对象实例却又在一个方法里头,是不正确的”说法是不正确的。jvm中对象与方法是分开存放的。在这个方法println里面,它本身会创建一个新的Cust对象,并调用它的方法,这是可以的,只是说在调用完这个方法后,这个在方法内部创建的对象将消失,因为它的作用域只是在这个方法里面。