A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ┣┫流枫 中级黑马   /  2014-8-9 22:10  /  2182 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ┣┫流枫 于 2014-8-9 22:22 编辑

  1. class Penguin {
  2.         private String name=null; // 名字
  3.         private int health=0; // 健康值
  4.         private String sex=null; // 性别
  5.         public void Penguin() {
  6.                 health = 10;
  7.                 sex = "雄";
  8.                 System.out.println("执行构造方法。");
  9.         }
  10.         public void print() {
  11.                 System.out.println("企鹅的名字是" + name +
  12.                                 ",健康值是" + health + ",性别是" + sex+ "。");
  13.         }
  14.         public static void main(String[] args) {
  15.                 Penguin pgn = new Penguin();
  16.                 pgn.print();
  17.         }        
  18. }
复制代码

输出结果:
企鹅的名字是null,健康值是0,性别是null

问题是为什么不走构造方法那



评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 淡定

查看全部评分

16 个回复

倒序浏览
:)构造方法是没有返回值的,void删掉
回复 使用道具 举报
……构造方法没返回值,你这样写会默认是一个普通方法……
回复 使用道具 举报
public void Penguin  你这加了返回值类型 就不是构造方法啦!
回复 使用道具 举报
扛把子 发表于 2014-8-9 22:12
构造方法是没有返回值的,void删掉

额   也就是说那只是一个和类名相同的  一般方法,不是构造方法啊
回复 使用道具 举报
嗯嗯,是的,有返回值的就是方法,无返回值的才是构造函数
回复 使用道具 举报
路过~~~~
回复 使用道具 举报
吧你构造函数的void去掉
回复 使用道具 举报
侯岩卿 来自手机 中级黑马 2014-8-9 22:44:29
9#
你这个不是构造函数啊!构造函数是没有返回值类型的!这个只是个普通的成员函数!没有被调用当然不会被执行!
回复 使用道具 举报
没有定义构造方法,调用的是默认的构造方法,默认的构造方法是空函数哦。
回复 使用道具 举报
没有构造方法呀  构造方法格式是这样的
       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();
        }        
}
回复 使用道具 举报
楼主:
      貌似楼主是0715班的?这一题是当时没明白?还是故意来问题刷分来了?

     这题刚刚有编译分析了一下,这边确实是没有执行那个函数,因为楼主也都说了,有void类型,不是构造函数,所以不会执行。。。

     然后我又特地测试了一下,把void去掉。。。。这时候是空参的构造函数了。。这时候执行了这个空参的构造函数。
    输入的结果:       执行构造方法。
                                企鹅的名字是null,健康值是10,性别是雄。

    这地方,空参的构造函数执行了。就没问题了、刚刚看错了以为又多了一个问题呢。。没问题了,就这样解释的。。
回复 使用道具 举报
看看。。。。。。。
回复 使用道具 举报
你那个没有构造函数,构造函数没有返回值。public Penguin() {}
回复 使用道具 举报
qingxi1 来自手机 中级黑马 2014-8-10 00:18:59
15#
它并不是构造方法
回复 使用道具 举报
M单色调 来自手机 中级黑马 2014-8-10 01:44:32
16#
构造函数无返回值,空的也不行!
回复 使用道具 举报
是不是应该连public也去掉……
Class Pengiun
{
        Pengiun()
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马