日期:2014-05-20  浏览次数:20608 次

怎么new出来对象不调用构造方法?但是默认构造方法不是没有参数????
import java.awt.*; 
import java.awt.event.*; 
public class TestActionEvent2 { 
public static void main(String[] args) { 
Frame f = new Frame("Test");/////这里new出来一个对象,必须要调用构造方法,但这了没有调;但默认的构造方法没有参数,这个"test"怎么显示出来,请高手解释一下???
 Button b1 = new Button("start");
Button b2 = new Button("stop"); 
Monitor bh = new Monitor(); 
b1.addActionListener(bh); 
b2.addActionListener(bh); 
b2.setActionCommand("game over"); 
f.add(b1,BorderLayout.NORTH); 
f.add(b2,BorderLayout.CENTER); 
f.pack(); 
f.setVisible(true); 



class Monitor implements ActionListener { 
public void actionPerformed(ActionEvent e) { 
System.out.println("a button jbeen pressed"+ 
"the relative info is:\n" + e.getActionCommand()); 


Button b1 = new Button("start"); 
Button b2 = new Button("stop"); 
Monitor bh = new Monitor(); 
b1.addActionListener(bh); 
b2.addActionListener(bh); 
b2.setActionCommand("game over"); 
f.add(b1,BorderLayout.NORTH); 
f.add(b2,BorderLayout.CENTER); 
f.pack(); 
f.setVisible(true); 



class Monitor implements ActionListener { 
public void actionPerformed(ActionEvent e) { 
System.out.println("a button jbeen pressed"+ 
"the relative info is:\n" + e.getActionCommand()); 

}

------解决方案--------------------
首先不知道你这个程序是怎么通过编译的

"这里new出来一个对象,必须要调用构造方法,但这了没有调;"
不知道你这句问的是什么意思,是说要调用构造方法但没有调用么?构造方法是调用了的,怎么会没调呢

"但默认的构造方法没有参数,这个"test"怎么显示出来,请高手解释一下??? "
默认的是没有参数,但你调用的是有参数的构造方法呀.
Frame有4个构造方法,分别是:
Frame() 构造 Frame 的一个新实例(初始时不可见)。 
Frame(GraphicsConfiguration gc) 使用屏幕设备的指定 GraphicsConfiguration 创建一个 Frame。 
Frame(String title) 构造一个新的、初始不可见的、具有指定标题的 Frame 对象。 
Frame(String title, GraphicsConfiguration gc)构造一个新的、初始不可见的、具有指定标题和GraphicsConfiguration 的 Frame 对象。 



------解决方案--------------------
同意LS的

------解决方案--------------------
Frame(String title); //这个就是构造方法,Frame本来就有多个构造方法,不一定非要调用默认构造方法,调用那个构造方法由用户自己决定

------解决方案--------------------
java技术交流,欢迎加入40652189,深入学习java的qq群,探讨新技术