黑马程序员技术交流社区
标题:
Swing桌面程序开发一个小问题?
[打印本页]
作者:
梁耀今
时间:
2013-4-9 16:41
标题:
Swing桌面程序开发一个小问题?
本帖最后由 梁耀今 于 2013-4-9 19:09 编辑
class Swing1 extends JFrame
{
public void Swing1() //有void为什么就什么显示就没有了!没有void就正常显示,这是什么回事啊?
{
this.setLayout(null);
JLabel j1 = new JLabel();
j1.setText("第一个Swing程序");
j1.setBounds(50,50,400,50);
this.add(j1);
this.setBounds(300,250,500,200);
this.setVisible(true);
}
public static void main(String[] args)
{
new Swing1();
}
}
作者:
张源锋
时间:
2013-4-9 17:05
有void就不是构造方法了,这时你new Swing1()调用的是public Swing1(){}这个默认的构造方法
作者:
Just_Only
时间:
2013-4-9 17:17
首先因为你写的是Swing1,所以你想写应不是方法而是构造函数的,而构造函数是没有返回类型的并且名称和类名相同,当没有void的是时候你写的就是构造函数的,而当你写的void时候,你这个就不是构造方法的了但是也不是函数(因为命名方式不对),而此时你的主函数中的new Swing1(),调用的时候默认的public Swings1(){}构造方法,所以什么也没有显示,而当你没有写void的时候此时调用的就是这个构造方法(也就是上面写的没有void的时候),所以就有显示的。
作者:
王怀亮
时间:
2013-4-9 18:43
你把构造函数写成普通函数了,构造函数定义时遵循以下准则:
1.函数名称与类名相同。
2.不含返回值类型。
当一个类的对象创建时,构造函数就会被自动调用,在对象的生命周期中,构造函数只会调用一次。
你的程序相当于没有构造函数,在一个类中如果没有定义构造函数,系统会为这个类产生一个默认的构造函数,该函数没有参数,也不做任何事情,所以自然不会显示任何东西
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2