黑马程序员技术交流社区
标题:
关于Java基础中构造方法
[打印本页]
作者:
continuer
时间:
2015-12-19 23:59
标题:
关于Java基础中构造方法
构造方法可以创建对象或者是给对象初始化 请问这句话对吧,这是前几天考试遇到的一个题目。答案是,这个选项是对的,我就纳闷了,说构造方法可以给对象初始化这个没问题,但是构造方法能创建对象吗?好像不可以吧,问了一下导师,导师说的也比较模糊,也没听明白,问下大神,构造方法可以创建对象吗?翻了一些资料,也没给出很明确的答案。
作者:
意念痴心灬戒贪
时间:
2015-12-20 00:19
他要给对象初始化的先有对象吧,他可以创建对象的~!
作者:
river1205
时间:
2015-12-20 06:30
构造方法的概念就是创建对象实例的方法,没有构造方法就不能创建对象,每个类如果没有手动写构造方法,java会自动补一个空参数的构造方法
作者:
sorryjsy
时间:
2015-12-20 10:41
本帖最后由 sorryjsy 于 2015-12-20 10:43 编辑
public class TestConstructor {
public static void main(String[] args) {
new Inner();
}
static class Inner {
private Inner mInstance;
public Inner() {
mInstance = new Inner();
}
}
}
复制代码
如上代码,在构造函数里创建自身对象的话,如果不加判断条件,会造成死循环,是不可以的。
但是如果加上判断条件,能够有效的终止代码而不死循环,使可以的。比如:
public class TestConstructor {
public static void main(String[] args) {
new Inner();
}
static class Inner {
private Inner mInstance;
public Inner() {
if(mInstance == null){
mInstance = new Inner();
}
}
}
}
复制代码
作者:
天若也易老
时间:
2015-12-20 10:57
构造方法,是和类名相同的,可以通过构造方法创建该类对象,并给该对象初始化,
作者:
焚寂
时间:
2015-12-20 11:47
路过,水一下
作者:
洋葱头头
时间:
2015-12-20 20:16
new 是创建对象 构造方法用来初始化
作者:
continuer
时间:
2015-12-20 20:55
哦 明白了 谢谢各位大神,以前一直以为构造方法只是用来给对象初始化的,原来它也参与了,创建对象,那么,我是不是可以这样理解:构造方法做了2件事,先是创建对象,在给对象初始化。对吧
作者:
孤独成瘾
时间:
2015-12-20 21:04
加油,加油,加油
作者:
continuer
时间:
2015-12-20 21:07
gogo,一起加油
作者:
xiaodongwubukun
时间:
2015-12-22 00:47
continuer 发表于 2015-12-20 20:55
哦 明白了 谢谢各位大神,以前一直以为构造方法只是用来给对象初始化的,原来它也参与了,创建对象,那么, ...
你说的很对
作者:
石三伢子1
时间:
2015-12-22 10:23
continuer 发表于 2015-12-20 20:55
哦 明白了 谢谢各位大神,以前一直以为构造方法只是用来给对象初始化的,原来它也参与了,创建对象,那么, ...
学过了子类的初始化过程就明白了,其实new constuctor(); 这话做了好几件事;先把类class字节码加载进内存;然后静态代码块的初始化,构造代码块的初始化,父类的默认初始化,显示初始化,构造函数初始化,然后就是子类的初始化;初始化完成了,对象也就建立完成了;在建立对象时也是重复这样的过程;但是class字节码只有一份;
作者:
continuer
时间:
2015-12-22 22:30
谢谢各位大神
作者:
孤独成瘾
时间:
2015-12-22 22:34
你说的不错,赞一个。666!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2