关于java构造函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 21:52:53
如果建立一个Calculator类继承JFrame
然后想要在初始化Calculator类时能用如下构造函数来在初始化
使得在初始化的同时能够设置面板标题:
Calculator calculator = new Calculator("title");

又因为实例化JFrame时可以:
JFrame frame = new JFrame("title");

于是可以:
public Calculator(String title)
{
super(title);
}
来实现

但是如果我把主要的功能实现部分都写在另一个构造函数
public Calculator(){}
中了。
怎样做到在如上的Calculator(String title)中调用构造函数
Calculator()?
同时也要能够调用JFrame()

我试过如下:
public Calculator(String title)
{
super(title);
this();
}
是错误的

super和this是不是都一定要在第一行写?
如果是这样的话怎样写才对?
XFrame中
this("我的家");
即相当于我的类功能主要实现部分
而我想要在main()中不是用XFrame()初始化
而是想把XFrame()中的功能转移到XFrame(String)中
然后通过XFrame(String)来初始化
目的是想在初始化的同时来设置窗口标题
然后就遇到这个问题了

对的 2句话都必须要放在第一行 但是这是不可能的!
我看了 不怎么明白你的意思 是这个意思吗
import java.awt.*;
import javax.swing.*;
public class XFrame extends JFrame
{
XFrame(String x)
{
super(x);
this.setSize(400,400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
//......
}
XFrame()
{
this("我的家");
}
public static void main(String[] args)
{
new XFrame();
}
}