令人困惑的实例

时间:2010-12-17 21:58:15

标签: java

不确定为什么当我在2中编译实例时编译器失败并且3次成功

//Instantiate Class Used To Fill In New Stock Details
CreateStockCodeDetails CreateStockDetailsInput = new CreateStockCodeDetails();
CreateStockDetailsInput.CreateStockCodeDetails(CreateNewStockCode); // (2)
CreateStockDetailsInput.CreateStockDetails(CreateNewStockCode);  // (3)

当我将构造函数命名为与该类相同的名称时,它将失败。为什么呢?

class CreateStockCodeDetails extends JFrame implements ActionListener {
    public void CreateStockDetails(String StockCode) {
        // This works   
    }
} 

class CreateStockCodeDetails extends JFrame implements ActionListener {
    public void CreateStockCodeDetails(String StockCode) {
        // This fails. Why?
    }
}

1 个答案:

答案 0 :(得分:4)

您不能在构造函数旁边放置返回类型。在你的第二个类声明中,构造函数只是:

public CreateStockCodeDetails(String StockCode)
{

}

现在你可以通过这样做来创建对象......

CreateStockCodeDetails var = new CreateStockCodeDetails("WTF is a stock code");

返回类型应该隐含在构造函数上,因为你总是知道你正在构造什么类型....

你的第一个类声明是有效的,因为你声明的方法不是构造函数(因为它既有返回类型又与类的名称不同),所以它被视为返回类型为void