我发现了一个惊天动地的秘密,原来是如此…………
在昨天关于JMenu讨论中,我从中发现了一个惊天动地的秘密。是关于构造函数的,
我出2个简单程序对比一下,你们就知道了。
第一个程序:
import java.awt.*;
import javax.swing.*;
public class MenuTest extends JFrame
{
public void Test()//一般函数**********************************
{
JMenuBar jmenubar=new JMenuBar();
setJMenuBar(jmenubar);
JMenu jmenu1=new JMenu("File");
JMenuItem jmenuItem1=new JMenuItem("New..");
jmenu1.add(jmenuItem1);
jmenubar.add(jmenu1);
setSize(700,500);
setTitle("Swing菜单测试");
show();
}
public static void main(String[] para)
{
MenuTest MT=new MenuTest();
MT.Test();//调用Test函数**********************
}
}
第二个程序import java.awt.*;
import javax.swing.*;
public class MenuTest extends JFrame
{
MenuTest()//构造函数****************************************
{
JMenuBar jmenubar=new JMenuBar();
setJMenuBar(jmenubar);
JMenu jmenu1=new JMenu("File");
JMenuItem jmenuItem1=new JMenuItem("New..");
jmenu1.add(jmenuItem1);
jmenubar.add(jmenu1);
setSize(700,500);
setTitle("Swing菜单测试");
show();
}
public static void main(String[] para)
{
new MenuTest();//不需要调用构造函数*****************************
}
}
注意我*号注释的地方,你马上就会发觉,在构造函数MenuTest中设计JMenuBar菜单的话,根本就不必调用构造函数,换句话说,构造函数出了确保所有的对象进行初始化外,而且还自动调用,所以不用在main函数中调用,你们说是吗????????