Действующий пример кода java Item № 5, второе издание

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. когда и как программа получает экземпляр даты рождения?
  2. Они пропустили процесс кодирования для этого экземпляра?
  3. С какой целью они сравнивали результаты с нулем(>= и ‹) внутри return ?
  4. Разве мы не можем использовать простой возврат без использования нулевого целого числа (логическое значение только для тестирования)?

person karthick    schedule 07.03.2016    source источник
comment
В книге предполагается, что вы можете решить эти вопросы самостоятельно, поэтому я предлагаю вам попробовать сделать именно это. Вы можете ответить на эти вопросы без какой-либо дополнительной информации, здесь нет никакого подвоха.   -  person Peter Lawrey    schedule 07.03.2016
comment
Более хитрый вопрос был бы; предлагает другую дату для boomStart и говорит, почему это может быть лучше, чем использование 1 января.   -  person Peter Lawrey    schedule 07.03.2016
comment
спасибо, Питер, можем ли мы написать return как returnbirthDate.compareTo(boomStart) &&birthDate.compareTo(boomEnd); не зная, как установить дату рождения, мне трудно протестировать (скомпилировать). Кто-нибудь поможет, написав полный код, чтобы получить дату рождения, спасибо   -  person karthick    schedule 07.03.2016
comment
См. этот вопрос для обсуждения compareTo() API.   -  person dimo414    schedule 23.07.2017


Ответы (1)


  1. Учитывая тот факт, что birthDate является окончательным, я бы сказал, что он передается в класс через конструктор,

  2. В книгах и других учебных материалах принято опускать фрагменты кода, которые не относятся к данному примеру, чтобы не создавать лишней уверенности для читателя.

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

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

person user902383    schedule 07.03.2016