+ -
当前位置:首页 → 问答吧 → 菜鸟...构造函数基本知识求解

菜鸟...构造函数基本知识求解

时间:2011-10-03

来源:互联网

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

定义实例变量:
people zhang=new people();//括号里可以不给他一个常量吗?

作者: tianwailaikewbb   发布时间: 2011-10-03

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

作者: layuan110   发布时间: 2011-10-03

引用 1 楼 layuan110 的回复:

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

+1
一般在写程序的时候都要自己写一个无参构造函数吧……不写的话系统也会默认给你一个

作者: goodnightgirl   发布时间: 2011-10-03

可以,前提是你得有默认无参数的构造方法

作者: hao_wen123   发布时间: 2011-10-03

引用 2 楼 goodnightgirl 的回复:
+1
一般在写程序的时候都要自己写一个无参构造函数吧………
不写的话系统也会默认给你一个


自己写了一个构造函数的话,系统不会给默认的构造函数了吧??

作者: tianwailaikewbb   发布时间: 2011-10-03

引用 4 楼 tianwailaikewbb 的回复:

引用 2 楼 goodnightgirl 的回复:
+1
一般在写程序的时候都要自己写一个无参构造函数吧………
不写的话系统也会默认给你一个


自己写了一个构造函数的话,系统不会给默认的构造函数了吧??

自己写的话系统当让不会再给了……

作者: goodnightgirl   发布时间: 2011-10-03

可能我没说明白 只要你写了构造方法 无论有参无参 系统都不再提供构造方法,但你要是没写肯定会有默认的构造方法

作者: goodnightgirl   发布时间: 2011-10-03

通不过编译

作者: Atrins   发布时间: 2011-10-03

一般写程序的时候,写了有参构造方法,也会把无参的构造方法也写上去,已经形成条件反射了,呵呵

作者: xyp0820107102   发布时间: 2011-10-03

这是形参和实参的问题吧

作者: kuaini   发布时间: 2011-10-03

学习了,谢谢大家

作者: tianwailaikewbb   发布时间: 2011-10-03

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

作者: wuwenxiang91322   发布时间: 2011-10-03

引用楼主 tianwailaikewbb 的回复:
在定义构造函数时,给了一个传递参数的局部变量。那在定义实例变量时并没有给他实参,这样是不是不能运行啊?
构造函数:
public people(double a){
this.a=a;
}

定义实例变量:
people zhang=new people();//括号里可以不给他一个常量吗?
强烈支持!

作者: jianai1314   发布时间: 2011-10-03

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

作者: jianai1314   发布时间: 2011-10-03

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

作者: tmhk123   发布时间: 2011-10-03

热门下载

更多