在GUI中调用Constructor方法

时间:2015-11-09 02:52:00

标签: java

我目前正在完成任务,我正在寻求帮助。我得到了一个名为ProductButton的类,并指示完成构造函数方法。 javadoc如下:

/**
Creates a button that will display an image of the product
(assumed to be stored in a file starting with the specified
name and ending with ".jpg"), the specified product name,
and the specified price (formatted properly); the text is 
displayed below the image and is centered.
@param name The product name.
@param price The selling price for this product.
*/

另外,我要创建一个驱动程序。我已经完成了大部分驱动程序,因为我没有寻找有关操作的格式,布局或响应的帮助,但是我将如何创建构造函数并在我的GUI驱动程序中调用它以正确创建。我是第一次使用java用户,这在某种程度上对我来说很陌生。谢谢你的帮助!

修改

这是我到目前为止所尝试的内容;

    public ProductButton (String name, double price) {
    productName = name;
    productPrice = price;

    NumberFormat formatter = NumberFormat.getCurrencyInstance();

    ImageIcon Icon = new ImageIcon(getName() + ".JPG");
    JButton Button = new JButton(getName() + "" + formatter.format(getPrice()), Icon);
    Button.setVerticalTextPosition(AbstractButton.BOTTOM);
    Button.setHorizontalTextPosition(AbstractButton.CENTER);

1 个答案:

答案 0 :(得分:2)

构造函数在生活中有一个目的:创建类的实例。

构造函数和方法在签名的三个方面有所不同:修饰符,返回类型和名称。与方法类似,构造函数可以具有任何访问修饰符:public,protected,private或none(通常称为包或友好)。与方法不同,构造函数只能使用访问修饰符。因此,构造函数不能是抽象的,最终的,本机的,静态的或同步的。

构造函数和方法使用关键字的方式完全不同。方法使用它来引用正在执行该方法的类的实例。静态方法不使用此方法;它们不属于类实例,因此没有任何内容可供参考。静态方法作为一个整体属于类,而不是属于实例。构造函数使用它来引用具有不同参数列表的同一个类中的另一个构造函数。

Java构造函数方法遵循以下模式

public class Test {

    private String s;
    private int i;

    public Test(String s, int i) {

        this.s = s;
        this.i = i;
    }

    public Test() {

        this.s = "Test";
        this.i = 20;
    }
}

正如您在上面所看到的,就像任何其他方法一样,您可以重载构造函数。您可以调用第一个构造函数并创建一个Test对象,并根据需要分配s和i。或者,您可以调用第二个构造函数并分配默认值。请看下面的例子。

public class Test2 {

    public static void main(String[] args) {

        Test t1 = new Test("Hi", 2); //t1.s is now "hi" and t1.i is 2
        Test t2 = new Test(); //t1.s is now "hello" and t1.i is 20
    }
}