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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 疯狂的学渣 中级黑马   /  2014-12-21 12:42  /  2891 人查看  /  15 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

最近看书,看到构造函数,然后看着书上的内容敲了一遍,检查了好几遍,都敲不出结果,就是敲不出构造函数。
最后发现,书上class的前面,只有public的修饰符,而我习惯性地,加上了public void。
那么问题来了,void按照我的理解,是无返回值的意思,怎么就禁止的构造函数的输出呢?
小弟的还在学基础部分,可能问题有点简单,求给点建议。

class Demo1
{
        public static void main(String[] args)
        {
                System.out.println("Starting...");
                Duck d = new Duck();
        }
}


class Animal
{
        public void Animal()
        {
                System.out.println("Making an animal.");
        }
}

class Duck extends Animal
{
        public void Duck()
        {
                System.out.println("Making a duck.");
        }
}




111.PNG (16.69 KB, 下载次数: 68)

111.PNG

222.PNG (16.5 KB, 下载次数: 72)

222.PNG

15 个回复

倒序浏览
你加上了void这就不叫构造函数了吧
回复 使用道具 举报
构造函数是在创建对象时调用,如果java开发人员设计了返回值,难道你一个引用类型还可以接收两个数据
回复 使用道具 举报
  1. class Demo1
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 System.out.println("Starting...");
  6.                Duck d = new Duck();
  7.         }
  8. }

  9. class Animal
  10. {
  11.                 //构造函数不用定义返回值类型。void
  12.         public Animal()
  13.         {
  14.                 System.out.println("Making an animal.");
  15.         }
  16. }

  17. class Duck extends Animal
  18. {
  19.         public Duck()
  20.         {
  21.                 System.out.println("Making a duck.");
  22.         }
  23. }
复制代码
回复 使用道具 举报
构造函数不需要void,同是void类型并不是没有返回值,而是返回空。
也就是所有的void方法最后,JAVA会默认增加一个return ;   你可以加上试试。
因为构造函数不能有返回值,是对象初始化的过程,所以不能存在return语句。
这是我的理解,供你参考。
回复 使用道具 举报
构造方法规定的不能有返回值,void也不行,因为就不能这么写,写了就变成了方法
回复 使用道具 举报
你应该是没有弄明白构造方法是什么,你的构造方法格式不对,固定格式是 权限修饰符 方法名和类名相同。它的格式跟普通的方法不一样的。而且你不写也是有默认的构造方法,而且你只要在构造方法主体什么都不写也是可以创建对象的。那样就可以不输出。总之就是构造函数的格式不是你那样的。记住格式就行了,其他都跟函数一样,只是没有返回值类型。
回复 使用道具 举报
构造函数不允许有返回值的。
回复 使用道具 举报
加上了void就是不是构造方法  , 一定要谨记构造方法的格式。
回复 使用道具 举报
看到你这个题,我又重温了构造函数:)
回复 使用道具 举报
谢谢各位的回答,现在理解好多了,我的理解是,构造函数需要返回的是对象,所有不能加void和return。
回复 使用道具 举报
4楼解释 很详细
回复 使用道具 举报
构造函数没有VOID的。
回复 使用道具 举报
构造函数加了void就是普通函数了。。
回复 使用道具 举报
kerner 中级黑马 2014-12-23 00:20:03
15#
构造函数如果有返回值,构造函数是编译器调用的,编译器该如何处理返回值?
回复 使用道具 举报
呢? 中级黑马 2014-12-23 00:25:15
16#
方法名必须一致,没有返回值类型,没有返回值,才叫构造函数。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马