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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-郑鹏 中级黑马   /  2012-8-16 21:05  /  1412 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

        返回值void代表不需要返回数据类型,而构造函数连void都没有。既然void代表不需要返回数据类型,那么构造函数为什么不直接也用void呢?
那样不更好吗?而为什么还要弄个构造函数那样的形式呢?

点评

void注意它也是一种返回类型,代表的是一种不需要返回值的返回类型。  发表于 2012-8-18 13:36

4 个回复

倒序浏览
构造方法是在产生对象时被java系统自动调用的,我们不能在程序中像调用其他方法一样去调用构造方法(必须通过关键词new自动调用它)。
void代表不需要返回数据类型   是对象调用的
构造方法是jvm调用的
回复 使用道具 举报
(1)构造方法是用于创建对象,并进行初始化值的。
        (2)构造方法的特点:       
                A:和类名相同
                B:没有返回类型
                C:没有返回值
        (3)构造方法的注意事项:
                A:如果一个自定义类没有构造方法,系统会默认给出一个无参构造方法。
                B:如果一个自定义类提供了构造方法,那么,系统将不再给出无参构造方法。
                  这个时候,你可以不使用无参构造方法。
                  如果你想使用,那么,就手动给出无参构造方法。

                建议:一般情况下,我们的自定义类都要手动给出无参构造方法。
        (4)构造方法和成员方法的区别
                A:格式区别
                        构造方法和类名相同,并且没有返回类型,也没有返回值。
                        普通成员方法可以任意起名,必须有返回类型,可以没有返回值。

                B:作用区别
                        构造方法用于创建对象,并进行初始化值。
                        普通成员方法是用于完成某个功能的。
                C:调用区别
                        构造方法是在创建对象时,用new调用的。
                        普通成员方法是由创建的对象调用的。

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 很给力!

查看全部评分

回复 使用道具 举报
那既然void代表不需要返回值,那么它为什么不直接把void给省略了呢?存在void是不是为了区别对象调用和jvm调用呢?
因为
class  Demo
{
        Demo(){
                System.out.println("hello");
        }
        public static void main(String[] args)
        {
                new Demo();
        }
}
输出结果为 hello
class  Demo
{
        void Demo(){
                System.out.println("hello");
        }
        public static void main(String[] args)
        {
                new Demo();
        }
}
没有输出结果
class  Demo
{
        void Demo(){
                System.out.println("hello");
        }
        public static void main(String[] args)
        {
                new Demo().Demo();
        }
}
输出结果为:hello
回复 使用道具 举报
【以解决】
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马