在定义构造函数时,给了一个传递参数的局部变量。那在定义实例变量时并没有给他实参,这样是不是不能运行啊?
构造函数:
public people(double a){
this.a=a;
}定义实例变量:
people zhang=new people();//括号里可以不给他一个常量吗?

解决方案 »

  1.   

    在没有自定义构造函数时,系统会自动加上默认的构造函数。
    public people(){}
    当自己再写个构造函数的时候那个默认的就没有了。你new people()的时候系统会去找people()这样一个构造函数,它找不到,会在编译时出问题。
    所以你必须自己手动添加这个构造函数。
      

  2.   

    在没有自定义构造函数时,系统会自动加上默认的构造函数。
    public people(){}
    当自己再写个构造函数的时候那个默认的就没有了。你new people()的时候系统会去找people()这样一个构造函数,它找不到,会在编译时出问题。
    所以你必须自己手动添加这个构造函数。
    说的对
      

  3.   

    所有的类都继承Object类,自己不写新的构造方法的话会默认有个空的构造方法
    public people(){
        super();
    }
    也就是什么都不实现
    自己定义新的构造方法的话该方法就没了
      

  4.   

    无参的默认构造函数是系统自动加上的。
    如果你真的不想用,比如使用单例设计模式,自己把默认构造函数变为私有的。private people(){
    }