高分求大神解释,我是菜鸟

firbbc1991 2012-09-19 03:54:58
public class root27 extends Thread {
root27(){}//这地方为什么要写一个空的构造方法????????
root27(String sname)
{
super(sname);
}
public void run()
{
for(int count=1,row=1;row<10;row++,count++)
{
for(int i=0;i<count;i++)
{
System.out.print('*');
}
System.out.println();
}
}
public static void main(String args[])
{
root27 a = new root27();
root27 b = new root27();
root27 c = new root27();
a.start();
b.start();
c.start();
}

}
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwcomcn123 2012-09-22
  • 打赏
  • 举报
回复
楼主可以结贴了
不要忘记给我分
哈哈!
jie_20 2012-09-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

没有空的构造方法,root27 a = new root27();就该有语法错误了。

当然索性构造方法都不要也行。。。
例如
//root27(){}//这地方为什么要写一个空的构造方法????????
//root27(String sname)
//{
//super(sname);
//}
因为有一个默认的无参数的构造方法,
但是当显式作成带参数的构造方法时,就没有默……
[/Quote]

+1
firbbc1991 2012-09-21
  • 打赏
  • 举报
回复
但是我要调用父类的start()方法啊。不用那个带参的构造方法能实现不?
liu4626846 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

其实关键点就一个:
如果你的类,完全没有写任何构造函数,那么Java会给一个默认的无参数构造函数。
但如果你的类,定义了一个带参数的构造函数,那么Java就不会再自动给出无参数构造函数了。

而你的类定义明显已经有:
root27(String sname) // 带参数构造函数

而后面的代码又是:
new root27(); // 企图使用无参数构造函数

那么必然需要定……
[/Quote]


+1
一个类里面没有写够着函数的时候会有一个默认的无参的构造函数,如果有写一个有参数的
那么你在new这个对象的时候也必须传入参数,而如果你不想传参数,那么你就得再写一个无参的构造函数了!
nmyangym 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

其实关键点就一个:
如果你的类,完全没有写任何构造函数,那么Java会给一个默认的无参数构造函数。
但如果你的类,定义了一个带参数的构造函数,那么Java就不会再自动给出无参数构造函数了。

而你的类定义明显已经有:
root27(String sname) // 带参数构造函数

而后面的代码又是:
new root27(); // 企图使用无参数构造函数

那么必然需要定……
[/Quote]
++1
安特矮油 2012-09-20
  • 打赏
  • 举报
回复
写个空的只是为了root27 a = new root27();这里new的时候需要用的无参构造。
JAVA在你没有任何构造函数的时候默认会有个无参构造函数,但是你下面创建了个
root27(String sname)
{
super(sname);
}
那么就不会再有默认的无参构造函数了
MiceRice 2012-09-19
  • 打赏
  • 举报
回复
其实关键点就一个:
如果你的类,完全没有写任何构造函数,那么Java会给一个默认的无参数构造函数。
但如果你的类,定义了一个带参数的构造函数,那么Java就不会再自动给出无参数构造函数了。

而你的类定义明显已经有:
root27(String sname) // 带参数构造函数

而后面的代码又是:
new root27(); // 企图使用无参数构造函数

那么必然需要定义一个无参数的构造函数。



从你的程序来看,其实你可以狠点,直接把 构造函数 全删了,反正你程序中也没有用到那个带参数的构造函数。
菖蒲老先生 2012-09-19
  • 打赏
  • 举报
回复
没有空的构造方法,root27 a = new root27();就该有语法错误了。

当然索性构造方法都不要也行。。。
例如
//root27(){}//这地方为什么要写一个空的构造方法????????
//root27(String sname)
//{
//super(sname);
//}
因为有一个默认的无参数的构造方法,
但是当显式作成带参数的构造方法时,就没有默认的了。。。
coolbamboo2008 2012-09-19
  • 打赏
  • 举报
回复
不写那个空的构造方法,下面的new对象出来怎么new啊

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧