java 构造函数的问题

frankli2009 2012-11-08 04:39:24
public class MainForm extends JFrame implements ActionListener
{
JMenuBar mBar=new JMenuBar();
MainForm()
{
setVisible(true); // 主要是问这里
}

}
public static void main(String[] args) {
new MainForm();
}
}



之后再另外一个类里如此调用

new MainForm().setVisible(true);

我是java小白,请问可以这样调用一个构造器里的函数吗,这是根据哪条原则,非常感谢!
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hepeng_8 2012-11-09
  • 打赏
  • 举报
回复
构造函数就是在用到这个对象实现的时候调用到的
  • 打赏
  • 举报
回复
new MainForm().setVisible(true); 这不是调用构造器里的方法,setVisible方法是从父类继承过来的,所以你可以调用。 另外,你的MainForm的构造器里也调用了一次,设置为可见,外面就不需要调用过了。
bpqqop 2012-11-08
  • 打赏
  • 举报
回复
3楼正解!当执行new MainForm();就会调用MainForm();的构造函数,也就会自动调用setVisible(true);
Jacky-止涯 2012-11-08
  • 打赏
  • 举报
回复
楼主,另一个类中如果这么调用的话,【new MainForm().setVisible(true);】 得看setVisible是什么访问权限,如果是public,是可以访问的。 如果是private就会报错…… 具体你可以看看public/private/protected的访问权限。 另外,你把setVisible(true)放在了构造函数里面,那么new的时候就会直接执行,也不用重新再写一遍。
java_wd 2012-11-08
  • 打赏
  • 举报
回复
构造函数在你new的时候就会执行里面的方法,不用new MainForm().setVisible(true); 这么调用
沈家大帅 2012-11-08
  • 打赏
  • 举报
回复
括号都不匹配
a8509190 2012-11-08
  • 打赏
  • 举报
回复
new MainForm() 就相当于一个MainFrom对象 当然可以调用构造函数

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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