2016-03-07 8 views
-3
public class Person 
private final Date birthDate; 
// others fields omitted 
public boolean isBabyBoomer() { 
Calendar gmtCal = 
Calendar.getInstance(TimeZone.getTimeZone("GMT")); 
gmtCal.set(1946,Calendar.JANUARY,1,0,0,0); 
Date boomStart =gmtCal.getTime(); 
gmtCal.set(1965,Calendar.JANUARY,1,0,0,0); 
Date boomEnd = gmtCal.getTime(); 
return birthDate.compareTo(boomStart) >= 0 && //where is Birthdate instance 
               // to compare         
birthDate.compareTo(boomEnd) < 0; 

} 
} 
  1. , когда и каким образом программа получает BirthDate экземпляр?
  2. Опустили ли они процесс кодирования для этого экземпляра?
  3. С какой целью они сравнивали результаты с нулем (> = и <) внутри возврата?
  4. Не можем ли мы использовать простой возврат без использования целых чисел нулей (булево только для тестирования)?
+1

В книге предполагается, что вы можете работать над этим самим, поэтому я предлагаю вам попробовать сделать именно это. Вы можете ответить на эти вопросы без дополнительной информации, здесь нет трюка. –

+0

Более сложный вопрос: предлагает другую дату для 'boomStart' и скажут, почему это может быть лучше, чем с 1 января. –

+0

спасибо peter, можем ли мы написать возвращение как возвращение birthDate.compareTo (boomStart) && birthDate.compareTo (boomEnd); не зная, как установить дату рождения, мне сложно проверить (скомпилировать). Любой поможет, написав полный код, чтобы получить дату рождения. Спасибо – karthick

ответ

0
  1. Данный факт birthDate является окончательным, я бы сказал, что передается в класс с помощью конструктора,

  2. Это обычная практика в книгах и других tutorin материалов опустить кусочки кода, которые не актуальны для данного примера, чтобы избежать создания дополнительного confision для читателя

  3. Метод compareTo возвращает int поэтому, если вы хотите, чтобы преобразовать это логический результат, вы должны сравнить его с некоторым числом, используя один из из операторы ==, !=, <, >, <=, >=

  4. И как вы хотите использовать простой возврат?