【问题标题】:Using an overloaded default constructor that calls a three parameter constructor in Java?使用在 Java 中调用三参数构造函数的重载默认构造函数?
【发布时间】:2020-09-15 15:59:19
【问题描述】:

我正在学习使用重载的构造函数。我需要编写的程序之一是跟踪当前活动、时间(以分钟为单位)和日期的健身程序。在这个程序中,我有一个默认构造函数和一个三参数构造函数。在默认构造函数中调用三参数构造函数时,我收到一条错误消息 “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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多