改变类的构造,Java

时间:2013-12-08 04:29:10

标签: java constructor

我有一个类LogAnalyzer(),我想更改构造函数,因此可以使用类LogfileReader的实例。然后,LogAnalyzer类将对此实例进行分析。

以下是构造函数的代码:

public LogAnalyzer()
{ 
    // Create the array object to hold the hourly
    // access counts.
    hourCounts = new int[24];
    // Create the reader to obtain the data.
    reader = new LogfileReader();
}

以下是LogAnalyzer类的字段:

// Where to calculate the hourly access counts.
private int[] hourCounts;
// Use a LogfileReader to access the data.
private LogfileReader reader;

我该怎么办?

2 个答案:

答案 0 :(得分:0)

构造函数也可能有参数。

public LogAnalyzer(LogfileReader r){
    this.reader = r;
    //insert code here
}

答案 1 :(得分:0)

试试这个:

public class LogAnalyzer() {

private int[]hourCounts;
private LogfileReader reader;

    // version that accepts LogFileReader
    public LogAnalyzer(LogfileReader r){
        hourCounts=new int[24];
        reader=r; // use the passed LogfileReader object, instead of creating one
    }

    // no-argument version
    public LogAnalyzer(){
        hourCounts=new int[24];
        reader=new LogfileReader();
    }

}

当你引入一个带参数的构造函数时,你会失去隐式的无参数构造函数,所以最好也创建它。