Назад | Начало урока | Вперед
Содержание

Глава 3

Задача 3.18 "Выпускники "

Добавьте к классу Child из программы о детском саде (задача 2.8) метод, который возвращает значение, указывающее, выпускается ли ребенок из детского сада в этом году. Решите, где должно быть объявлено значение года и как должен осуществляться доступ к нему: как к константе в главной программе, которая передается в качестве параметра, как к статической переменной в классе или иначе.

Решение

Объявим текущий год как константу в главной программе

static final int Year = 2007;

и будем передавать ее как параметр в конструктор класса.

Кроме того изменим несколько класс Child: вместо переменной, обозначающей возраст ребенка введем переменную (с тем же именем) обозначающую год рождения. Тогда возраст ребенка будет определяться разницей между текущим годом и годом рождения.

Кроме того, введем в класс Child еще один метод YesOrNo, который высчитывает возраст ребенка и в зависимости от полученного результата выводит сообщение о том, идет или не идет ребенок в этом году в школу.

Код программы:


class ChildGarten {

static final int Year = 2007;

Child Ben, Sally,George,Ringo,Pol,Jhon;

// The constructor for the program is
// where the initial work gets done
ChildGarten () {

Ben = new Child("Ben","Smit","great",2001,Year);
Sally = new Child("Sally","Brown","middle",2003,Year);
George = new Child("George","Harrison","small",2004,Year);
Ringo = new Child("Ringo","Starkey","small",2005,Year);
Pol = new Child("Pol","MacCartny","prepare",2000,Year);
Jhon = new Child("Jhon","Lennon","greate",2001,Year);

// Print out a header

System.out.println();
System.out.println(" ChildGarten program\n");

Ben.write();
Ben.YesOrNo();

Sally.write();
Sally.YesOrNo();
George.write();
George.YesOrNo();
Ringo.write();
Ringo.YesOrNo();
Pol.write();
Pol.YesOrNo();
Jhon.write();
Jhon.YesOrNo();

System.out.println();

}


// All programs must have a main method public static void main (String [ ] args) {

// Start the program running from its constructor
new ChildGarten ();
}
}


class Child {

String name;
String secondName;
String groupName; //small,great,maddle,prepare
int year; // born
int limit = 7;
int currentYear;

Child(String n, String sec_n, String gr_n, int y, int Y ){

name = n;
secondName = sec_n;
groupName =gr_n;
year =y;
currentYear = Y;
}

// a method to output the values of the object's variables

void write() {

System.out.println( name + " " + secondName + " " + groupName + " group " + (currentYear- year) + " year" + "(" + (limit - (currentYear - year)) + " year to scool) " );

}

void YesOrNo(){

if( 7 == (currentYear - year))
System.out.println( name + " " + secondName + " go to Scool in this year ");
System.out.println( name + " " + secondName + " not go to Scool in this year ");
}
}


Результат :

ChildGarten program

Ben Smit great group 6 year(1 year to scool)
Ben Smit not go to Scool in this year
Sally Brown middle group 4 year(3 year to scool)
Sally Brown not go to Scool in this year
George Harrison small group 3 year(4 year to scool)
George Harrison not go to Scool in this year
Ringo Starkey small group 2 year(5 year to scool)
Ringo Starkey not go to Scool in this year
Pol MacCartny prepare group 7 year(0 year to scool)
Pol MacCartny go to Scool in this year
Pol MacCartny not go to Scool in this year
Jhon Lennon greate group 6 year(1 year to scool)
Jhon Lennon not go to Scool in this year


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz