有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用重载的默认构造函数调用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;
    }
}

共 (1) 个答案

  1. # 1 楼答案

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

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