标题:加void与不加void的问题???
只看楼主
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
 问题点数:0 回复次数:4 
加void与不加void的问题???

为什么下面中的public void frame1() 中加上void就会出现C:\Documents and Settings\Administrator\桌面\Class1.java:12: call to super must be first statement in constructor super("我的应用程序");的错误?不加没有什么事,为什么?

import java.awt.*;
import java.awt.event.*;
class frame1 extends Frame implements ActionListener

{

public (void )frame1()

{

super("我的应用程序");
setLayout(new FlowLayout(FlowLayout.LEFT));
setBackground(Color.blue);
setSize(500,500);
setLocation(100,100);
add(new Button("确定"));
add(new Button("取消"));
Button btn=new Button("退出");
add(btn);
btn.addActionListener(this);
add(new Label("请输入数据:",Label.CENTER));
add (new TextField("文本框",10));
setVisible(true);
validate();
}

public void actionPerformed(ActionEvent e)

{
System.exit(0);
}

}

public class Class1
{
public static void main(String args[])
{
new frame1();
}

}

搜索更多相关主题的帖子: void 
2006-04-02 00:49
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 
对 super 的调用必须是构造函数中的第一个语句 super("我的应用程序");
这个错误一看就知道了吧……
你加了void就不是构造函数了呀……

向着软件工程师的目标前进!
2006-04-02 09:06
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
只有在构造函数中才能调用super()这个语句
因为你加了void就不是构造函数了,它就不能调用super();
你把super()去了,它就可以运行了

可惜不是你,陪我到最后
2006-04-02 09:58
Magicmoon20
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-4-2
得分:0 

JAVA 里面的构造函数呀返回一个构造的对象,你如果在构造函数前加上void 就相当与是在构造函数的第一句声明在这个构造函数中不返回任何对象,这样做1.你即使调用构造方法,也不会返回任何对象,2。super语句在构造方法中不是第一句拉

2006-04-02 13:09
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
得分:0 

谢谢大家,我明白了。


心中的那片蓝天,永远为你而存在... ...
2006-04-03 10:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-54492-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051494 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved