首页 > 解决方案 > 使用在 Java 中调用三参数构造函数的重载默认构造函数?

问题描述

我正在学习使用重载的构造函数。我需要编写的程序之一是跟踪当前活动、时间(以分钟为单位)和日期的健身程序。在这个程序中,我有一个默认构造函数和一个三参数构造函数。在默认构造函数中调用三参数构造函数时,我收到一条错误消息,提示“FitnessTracker2(String, int, LocalDate) 方法对于 FitnessTracker2 类型未定义”,而调用的 LocalDate 参数似乎是导致它的原因。我已经尝试重新排序构造函数并更改它们的名称,到目前为止我尝试过的一切都让我无处可去。

import java.time.*;
public class FitnessTracker2 {
    String activity;
    int minutes;
    LocalDate date;
    public FitnessTracker2() {
        FitnessTracker2("running", 0, LocalDate.of(1,1,2020));
    }
    public FitnessTracker2(String a, int m, LocalDate d) {
        activity = a;
        minutes = m;
        date = d;
    }
    public String getActivity() {
        return activity;
    }
    public int getMinutes() {
        return minutes;
    }
    public LocalDate getDate() {
        return date;
    }
}

标签: java

解决方案


从默认构造函数调用另一个构造函数时,需要使用this关键字而不是类名来引用它。

public FitnessTracker2() {
    this("running", 0, LocalDate.of(1, 1, 2020));
}

推荐阅读