超载构造函数& Java中的方法

时间:2013-10-17 23:21:48

标签: java user-interface methods constructor overloading

我的作业涉及编写GUI。我不是在找人为我做作业,但我只是想帮助他更好地理解它。我们将编写以下类的代码:由于我们需要单独的类和单独的驱动程序来测试类,因此我将分工。根据需要使用MATH类。一定要使用浮点数或双原语数据类型。其他学生将拥有默认构造函数(将默认值设置为2.0f或2.0为double),以及重载方法以接受数据浮点数或双精度数。

此外,学生将使用图形用户界面编程技术作为类的接口。学生可以使用标签,按钮,单选按钮,菜单以及滑块。

方形等级(周长和面积)

主要是我需要帮助的地方:

施工人员应该去哪里?如何在这段代码中实现它们重载?我怎么能重载这段代码中的方法?

    import javax.swing.*;
    import java.awt.event.*; // Needed for ActionListener Interface

    /**
     * The BugayTestSquare 3 class displays a JFrame that lets the user enter in the
     * sides of the of a square. When the calculate button is pressed, a dialog box
     * will be displayed with the area and perimeter shown. 
     */

    public class FirstGUI extends JFrame
    {
        /*
         * Acording to good class design princples, the fields are private.
         */
        private JPanel panel;
        private JLabel messageLabel, messageLabel2;
        private JTextField lengthTextField;
        private JButton calcButton;
        private final int WINDOW_WIDTH = 310;
        private final int WINDOW_HEIGHT = 150;

        /**
         * Constructor
     */

    public FirstGUI()
    {
        // Set the window title
        setTitle("Area and Perimiter Calculator");

        // Set the size of the window.
        setSize(WINDOW_WIDTH, WINDOW_HEIGHT);

        // Specify what happens when the close button is clicked.
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Build the panel and add it to the frame.
        buildPanel();

        // Add the panel to the frames content pane.
        add(panel);

        //diplay the window.
        setVisible(true);
    }

    /** The buildPanel method adds a label, 
     * text field, and a button to a panel.
     **/

    private void buildPanel()
    {
        // Create a label to display instructions.
        messageLabel = new JLabel("Please enter in the length " +
                                  "of the square.");

        messageLabel2 = new JLabel("Please enter in the width " +
                                 "of the square.");

        // Create a text field 10 characters wide.
        lengthTextField = new JTextField(10);

        //Create a button with the caption "Calculate."
        calcButton = new JButton("Calculate");

        // Add an action listener to the button.

        calcButton.addActionListener(new FirstGUI.CalcButtonListener());

        //Create a JPanel object and let the
        // panel field reference it.
        panel =new JPanel();

        // Add the label, text field, and button.
        // components to the panel.

        panel.add(messageLabel);
        panel.add(messageLabel2);
        panel.add(lengthTextField);
        panel.add(calcButton);
    }

    /**
     * CalcButtonListener is an action listener 
     * class for the Calculate button.
     */

    private class CalcButtonListener implements ActionListener
    {
        /**
         * The actionPerformed method executes when the user
         * clicks on the Calculate Button.
         * @param e The Event Object.
         */

        public void actionPerformed(ActionEvent e)
        {
            String input; // To hold the user's input
            double area; // The area
            double perimeter; // the perimter

            // Get the text entered by the user into the
            // text field

            input = lengthTextField.getText();

            //Perform Calculations
            area = Double.parseDouble(input)*2; 
            perimeter = Double.parseDouble(input)*4;

            //Display the result.

            JOptionPane.showMessageDialog(null, "Your area is " +area +
                "\nYour perimter is " + perimeter);

        }
    }
}

1 个答案:

答案 0 :(得分:0)

这应该有所帮助:

public class FirstGUI extends JFrame
    {

    public FirstGUI {

        // Constructers go here

     }

}

至于重载。想象一下,你有一张借记卡,它可以用作借记卡或信用卡。它有两个用途。您可以创建两个具有相同名称但具有不同含义的方法。

示例:

public void functionOne(int num1, int num1) {

// do some stuff

}

public void functionOne(int num1, int num1, String str) {

// do some stuff but has different input

}

public void functionOne(int num1) {

// do some stuff but has different input

}

您可以将方法调用为:

functionOne(1, 2);

functionOne(1, 2, "hello world");

public void functionOne(59);

所有调用都将是一个具有相同名称但输入不同的方法。所有电话都是正确的。您现在可以调用functionOne重载。