//2задача
public class Main {
public static void main
( String [ ] args
) { Person[ ] persons = new Person[ 4 ] ;
persons[ 0 ] = new Person( "Шторк" , 19 , true ) ;
persons[ 1 ] = new Person( "Петов" , false ) ;
persons[ 2 ] = new Person( ) ;
persons[ 3 ] = new Person( persons[ 0 ] ) ;
for ( Person person : persons) {
person.print ( ) ;
}
System .
out .
println ( "Средний возраст индивидуума: " + Person.
averageAge ( persons
) ) ; System .
out .
println ( "Количество мужчин: " + Person.
countMales ( persons
) ) ; }
}
class Person {
private int age;
private boolean isMale;
public Person( ) {
this ( "" , 0 , false ) ;
}
public Person
( String lastName,
int age,
boolean isMale
) { this .lastName = lastName;
this .age = age;
this .isMale = isMale;
}
public Person
( String lastName,
boolean isMale
) { this ( lastName, 0 , isMale) ;
}
public Person( Person person) {
this .lastName = person.lastName ;
this .age = person.age ;
this .isMale = person.isMale ;
}
return lastName;
}
public int getAge( ) {
return age;
}
public boolean isMale( ) {
return isMale;
}
public static double averageAge( Person[ ] persons) {
int totalAge = 0 ;
int count = 0 ;
for ( Person person : persons) {
if ( person.getAge ( ) != 0 ) {
totalAge += person.getAge ( ) ;
count++;
}
}
return ( double ) totalAge / count;
}
public static int countMales( Person[ ] persons) {
int count = 0 ;
for ( Person person : persons) {
if ( person.isMale ( ) ) {
count++;
}
}
return count;
}
public void print( ) {
if ( ! lastName.isEmpty ( ) ) {
System .
out .
println ( "Фамилия: " + lastName
) ; }
if ( age != 0 ) {
System .
out .
println ( "Возраст: " + age
) ; }
System .
out .
println ( "Пол: " + ( isMale
? "Мужской" : "Женский" ) ) ; }
}
Ly8y0LfQsNC00LDRh9CwCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBQZXJzb25bXSBwZXJzb25zID0gbmV3IFBlcnNvbls0XTsKCiAgICAgICAgcGVyc29uc1swXSA9IG5ldyBQZXJzb24oItCo0YLQvtGA0LoiLCAxOSwgdHJ1ZSk7CiAgICAgICAgcGVyc29uc1sxXSA9IG5ldyBQZXJzb24oItCf0LXRgtC+0LIiLCBmYWxzZSk7CiAgICAgICAgcGVyc29uc1syXSA9IG5ldyBQZXJzb24oKTsKICAgICAgICBwZXJzb25zWzNdID0gbmV3IFBlcnNvbihwZXJzb25zWzBdKTsKCiAgICAgICAgZm9yIChQZXJzb24gcGVyc29uIDogcGVyc29ucykgewogICAgICAgICAgICBwZXJzb24ucHJpbnQoKTsKICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi0KHRgNC10LTQvdC40Lkg0LLQvtC30YDQsNGB0YIg0LjQvdC00LjQstC40LTRg9GD0LzQsDogIiArIFBlcnNvbi5hdmVyYWdlQWdlKHBlcnNvbnMpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCa0L7Qu9C40YfQtdGB0YLQstC+INC80YPQttGH0LjQvTogIiArIFBlcnNvbi5jb3VudE1hbGVzKHBlcnNvbnMpKTsKICAgIH0KfQoKY2xhc3MgUGVyc29uIHsKICAgIHByaXZhdGUgU3RyaW5nIGxhc3ROYW1lOwogICAgcHJpdmF0ZSBpbnQgYWdlOwogICAgcHJpdmF0ZSBib29sZWFuIGlzTWFsZTsKCiAgICBwdWJsaWMgUGVyc29uKCkgewogICAgICAgIHRoaXMoIiIsIDAsIGZhbHNlKTsKICAgIH0KCiAgICBwdWJsaWMgUGVyc29uKFN0cmluZyBsYXN0TmFtZSwgaW50IGFnZSwgYm9vbGVhbiBpc01hbGUpIHsKICAgICAgICB0aGlzLmxhc3ROYW1lID0gbGFzdE5hbWU7CiAgICAgICAgdGhpcy5hZ2UgPSBhZ2U7CiAgICAgICAgdGhpcy5pc01hbGUgPSBpc01hbGU7CiAgICB9CgogICAgcHVibGljIFBlcnNvbihTdHJpbmcgbGFzdE5hbWUsIGJvb2xlYW4gaXNNYWxlKSB7CiAgICAgICAgdGhpcyhsYXN0TmFtZSwgMCwgaXNNYWxlKTsKICAgIH0KCiAgICBwdWJsaWMgUGVyc29uKFBlcnNvbiBwZXJzb24pIHsKICAgICAgICB0aGlzLmxhc3ROYW1lID0gcGVyc29uLmxhc3ROYW1lOwogICAgICAgIHRoaXMuYWdlID0gcGVyc29uLmFnZTsKICAgICAgICB0aGlzLmlzTWFsZSA9IHBlcnNvbi5pc01hbGU7CiAgICB9CgogICAgcHVibGljIFN0cmluZyBnZXRMYXN0TmFtZSgpIHsKICAgICAgICByZXR1cm4gbGFzdE5hbWU7CiAgICB9CgogICAgcHVibGljIGludCBnZXRBZ2UoKSB7CiAgICAgICAgcmV0dXJuIGFnZTsKICAgIH0KCiAgICBwdWJsaWMgYm9vbGVhbiBpc01hbGUoKSB7CiAgICAgICAgcmV0dXJuIGlzTWFsZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGRvdWJsZSBhdmVyYWdlQWdlKFBlcnNvbltdIHBlcnNvbnMpIHsKICAgICAgICBpbnQgdG90YWxBZ2UgPSAwOwogICAgICAgIGludCBjb3VudCA9IDA7CiAgICAgICAgZm9yIChQZXJzb24gcGVyc29uIDogcGVyc29ucykgewogICAgICAgICAgICBpZiAocGVyc29uLmdldEFnZSgpICE9IDApIHsKICAgICAgICAgICAgICAgIHRvdGFsQWdlICs9IHBlcnNvbi5nZXRBZ2UoKTsKICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIChkb3VibGUpIHRvdGFsQWdlIC8gY291bnQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgY291bnRNYWxlcyhQZXJzb25bXSBwZXJzb25zKSB7CiAgICAgICAgaW50IGNvdW50ID0gMDsKICAgICAgICBmb3IgKFBlcnNvbiBwZXJzb24gOiBwZXJzb25zKSB7CiAgICAgICAgICAgIGlmIChwZXJzb24uaXNNYWxlKCkpIHsKICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGNvdW50OwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHByaW50KCkgewogICAgICAgIGlmICghbGFzdE5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi0KTQsNC80LjQu9C40Y86ICIgKyBsYXN0TmFtZSk7CiAgICAgICAgfQogICAgICAgIGlmIChhZ2UgIT0gMCkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCS0L7Qt9GA0LDRgdGCOiAiICsgYWdlKTsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQn9C+0Ls6ICIgKyAoaXNNYWxlID8gItCc0YPQttGB0LrQvtC5IiA6ICLQltC10L3RgdC60LjQuSIpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKICAgIH0KfQo=