黑马程序员技术交流社区
标题:
程序不走构造方法,为啥
[打印本页]
作者:
┣┫流枫
时间:
2014-8-9 22:10
标题:
程序不走构造方法,为啥
本帖最后由 ┣┫流枫 于 2014-8-9 22:22 编辑
class Penguin {
private String name=null; // 名字
private int health=0; // 健康值
private String sex=null; // 性别
public void Penguin() {
health = 10;
sex = "雄";
System.out.println("执行构造方法。");
}
public void print() {
System.out.println("企鹅的名字是" + name +
",健康值是" + health + ",性别是" + sex+ "。");
}
public static void main(String[] args) {
Penguin pgn = new Penguin();
pgn.print();
}
}
复制代码
输出结果:
企鹅的名字是
null
,健康值是
0
,性别是
null
。
问题是为什么不走构造方法那
作者:
扛把子
时间:
2014-8-9 22:12
:)构造方法是没有返回值的,void删掉
作者:
fxwb2005
时间:
2014-8-9 22:13
……构造方法没返回值,你这样写会默认是一个普通方法……
作者:
晋一峰
时间:
2014-8-9 22:15
public void Penguin 你这加了返回值类型 就不是构造方法啦!
作者:
┣┫流枫
时间:
2014-8-9 22:15
扛把子 发表于 2014-8-9 22:12
构造方法是没有返回值的,void删掉
额 也就是说那只是一个和类名相同的 一般方法,不是构造方法啊
作者:
Bule丶
时间:
2014-8-9 22:20
嗯嗯,是的,有返回值的就是方法,无返回值的才是构造函数
作者:
渴望学习
时间:
2014-8-9 22:39
路过~~~~
作者:
rolling-stone
时间:
2014-8-9 22:44
吧你构造函数的void去掉
作者:
侯岩卿
时间:
2014-8-9 22:44
你这个不是构造函数啊!构造函数是没有返回值类型的!这个只是个普通的成员函数!没有被调用当然不会被执行!
作者:
shuimu_88
时间:
2014-8-9 23:37
没有定义构造方法,调用的是默认的构造方法,默认的构造方法是空函数哦。
作者:
冷锋也温柔
时间:
2014-8-9 23:46
没有构造方法呀 构造方法格式是这样的
class Penguin {
private String name=null; // 名字
private int health=0; // 健康值
private String sex=null; // 性别
public Penguin() {
health = 10;
sex = "雄"; 这时候
Penguin()是构造方法,要把void去掉的
System.out.println("执行构造方法。");
}
public void print() {
System.out.println("企鹅的名字是" + name +
",健康值是" + health + ",性别是" + sex+ "。");
}
public static void main(String[] args) {
Penguin pgn = new Penguin();
pgn.print();
}
}
作者:
烟海
时间:
2014-8-9 23:57
楼主:
貌似楼主是0715班的?这一题是当时没明白?还是故意来问题刷分来了?
这题刚刚有编译分析了一下,这边确实是没有执行那个函数,因为楼主也都说了,有void类型,不是构造函数,所以不会执行。。。
然后我又特地测试了一下,把void去掉。。。。这时候是空参的构造函数了。。这时候执行了这个空参的构造函数。
输入的结果: 执行构造方法。
企鹅的名字是null,健康值是10,性别是雄。
这地方,空参的构造函数执行了。就没问题了、刚刚看错了以为又多了一个问题呢。。没问题了,就这样解释的。。
作者:
inception
时间:
2014-8-10 00:10
看看。。。。。。。
作者:
/aiq玩完?/aiq
时间:
2014-8-10 00:12
你那个没有构造函数,构造函数没有返回值。public Penguin() {}
作者:
qingxi1
时间:
2014-8-10 00:18
它并不是构造方法
作者:
M单色调
时间:
2014-8-10 01:44
构造函数无返回值,空的也不行!
作者:
编程学徙
时间:
2014-8-10 13:42
是不是应该连public也去掉……
Class Pengiun
{
Pengiun()
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2