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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天方地圆 中级黑马   /  2014-3-10 17:08  /  1307 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 天方地圆 于 2014-3-11 23:07 编辑

当一个类没有构造函数时,为什么不能直接创建对象?

7 个回复

倒序浏览
默认有一个的,构造函数就是用来做初始化工作的。如果没了初始化函数,就无法完成初始化工作了。至于没有构造函数,能不能创建对象,就不清楚了。
回复 使用道具 举报
类中有个默认构造函数,只不过是隐式的。当你没有自定义构造函数时程序会自动访问隐式构造函数对对象进行初始化,如果你自己添加了构造函数就可以通过你指定的构造函数初始化。
回复 使用道具 举报
因为一个对象要被创建出来,就必须调用构造函数,如果类里面没有显式定义构造函数,就会调用默认构造函数,否则该对象不能被构造出来
回复 使用道具 举报
构造函数就是为了创建类的对象,即使你不写,也会默认有一个空的没有参数的构造函数的。你可以在构造函数里面做一些给自己的属性赋值,对象初始化之类的事情。打个比方说,如果父类有带参数的构造函数,你不定义构造函数的话就没有办法调用父类的构造函数,这样你就不能继承那个父类。
  1. class Parent{
  2.     private String name;
  3.     public Parent(String name){
  4.     this.name = name;
  5.   }
  6. }
复制代码

你要定义一个类继承这个类,就必须要再你自己的类的构造函数第一句话调用super(xxx),不然程序就是错的。
如果你不在构造函数里面给自己的属性赋值,那么程序就会变得很繁琐,每个属性都要调用一个set方法去设置,这样会很繁琐。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
类执行时默认会有一个无参的构造函数被调用.
回复 使用道具 举报
olivia 初级黑马 2014-3-11 10:03:32
7#
.构造函数的功能主要用于在类的对象创建时定义初始化的状态。
回复 使用道具 举报
      类中的构造函数是为了new对象,一般类中有一个默认构造函数,这个默认构造函数是不向新建的构造函数传递参数的。若是想new一个带参数的对象还必须自定义一个带参数的构造函数。                       class Person
            {   
                     Person(name,age)
                     {
                            this.name=name;
                            this.age=age;
                      }
            }
            class  Demo
            {
                    Person p=new Person("xiaoqiang",23);
            }
       当要new创建子类对象时,如果父类调用的是默认构造方法时子类对象在子类构造方法时,首句应为super();如果父类重新定义了构造方法时,子类构造方法的首句应为super(name,age);  例如:
           class Person
           {
                    private String name;
                     private int  age;
                     Person(String name,int age)
                     {
                            this.name=name;
                            this.age=age;
                      }
           }
           class  Zi  extends   Person
        {
                Zi(String name,int age)
                {
                        super(name,age);
                }
         }

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马