0
我做了一個類的日期,並在這個類位於以下聲明:爲什麼我的布爾值總是正確的?
private int year;
private boolean leap = ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0));
public boolean isLeap() {return leap;}
然後(在不同的文件)的主要方法中:
String leapStr;
if (dateObject.isLeap()) {leapStr = "";}
else leapStr = "non-";
System.out.printf("Year %d is a %sleap year.", dateObject.getYear(), leapStr);
所以,出於某種原因即使年份顯然不是閏年,leapStr也永遠不是「非」的。我完全不知道這個問題會是什麼。有任何想法嗎?
是一年初始化?不是初始化'leap',而是在'isLeap()'中計算它,或者在構造函數中計算'leap'。 – damned
您只發布一半的代碼。重要的部分不見了。你如何初始化年? –
如果year沒有被初始化,它將會有值= 0,所以布爾飛躍永遠是真的,所以在初始化年份的時候粘貼完整的代碼。 – Batty