java - Java 中的 Setter 和 Getter

标签 java setter getter

当我运行这个程序时,它返回:

00:00:00
00:00:00
00:00:00
00:00:00

我做错了什么以及如何让它返回我想要返回的数字?

这是我的主类中的代码。

public static void main(String[] args) {
    tuna tunaObject1 = new tuna();
    tuna tunaObject2 = new tuna(5);
    tuna tunaObject3 = new tuna(5, 13);
    tuna tunaObject4 = new tuna(5, 13, 43);

    System.out.println(tunaObject1.toMilitary());
    System.out.println(tunaObject2.toMilitary());
    System.out.println(tunaObject3.toMilitary());
    System.out.println(tunaObject4.toMilitary());
}

}    

这是我在主类之外的类中的代码。

public class tuna {
    private int hour;
    private int minute;
    private int second;

public tuna() {
    this(0, 0, 0);
}

public tuna(int h) {
    this(h, 0, 0);
}

public tuna(int h, int m) {
    this(h, m, 0);
}

public tuna(int h, int m, int s) {
    setTime(h, m, s);
}

public void setTime(int h, int m, int s) {
    setHour(h);
    setMinute(m);
    setSecond(s);
}

public void setHour(int h) {
    hour = ((hour >= 0 && hour < 24) ? hour:0);
}

public void setMinute(int m) {
    minute = ((minute >= 0 && minute < 60) ? minute:0);
}

public void setSecond(int s) {
    second = ((second >= 0 && second < 60) ? second:0);
}

public int getHour() {
    return hour;
}

public int getMinute() {
    return minute;
}

public int getSecond() {
    return second;
}

public String toMilitary() {
    return String.format("%02d:%02d:%02d", getHour(), getMinute(),  getSecond());
}

}

最佳答案

查看您的 setHour 方法的示例:

hour = ((hour >= 0 && hour < 24) ? hour:0);

请注意,类成员具有默认值,因为 hour 是一个 int,因此它的默认值是 0 ( JLS 4.12.5. Initial Values of Variables )。所以你的方法相当于:

hour = ((0 >= 0 && 0 < 24) ? 0 : 0);

其他方法也是如此。

附加说明:

  • 调试您的代码 - 调试器将帮助您快速发现错误的原因
  • 关注Java Naming Conventions并将您的类重命名为 Tuna

在我描述了问题之后,解决它就很容易了。使用 h 而不是 hour,我相信您可以自己处理这个问题。

关于java - Java 中的 Setter 和 Getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30451643/

相关文章:

wpf - 在 Setter 中覆盖 Text 属性(或更好的方法)

python - 使用键作为方法(getter 和 setter)调用语法访问字典

java - 如何使用 muleClient.request 从 Java 实现异步 AMQP-RabbitMQ?

java - 浏览器内文字编辑的建议

java - 这两种方法有什么区别?

java - 继承 getter 和 toString() - java

javascript - 懒惰的 setter/getter 在类里面不起作用

java - 对此使用 setter/getter 。在java中

java - 需要在eclipse中调试一个swing应用程序

java - 如何通过eclipse插件连接服务器并执行操作