public class Main {
public static void main
( String [ ] args
) { Icecream[ ] icecreams = new Icecream[ 4 ] ;
icecreams[ 0 ] = new Icecream( "Шоколадное" , true , 5 ) ;
icecreams[ 1 ] = new Icecream( "Сливочное" , false ) ;
icecreams[ 2 ] = new Icecream( ) ;
icecreams[ 3 ] = new Icecream( icecreams[ 0 ] ) ;
for ( Icecream icecream : icecreams) {
icecream.print ( ) ;
}
System .
out .
println ( "Средний процент жирности: " + Icecream.
averageFatContent ( icecreams
) ) ; System .
out .
println ( "Количество мороженых с шоколадом: " + Icecream.
countChocolateIcecream ( icecreams
) ) ; }
}
class Icecream {
private boolean hasChocolate;
private int fatContent;
public Icecream( ) {
this ( "" , false , 0 ) ;
}
public Icecream
( String name,
boolean hasChocolate
) { this ( name, hasChocolate, 0 ) ;
}
public Icecream
( String name,
boolean hasChocolate,
int fatContent
) { this .name = name;
this .hasChocolate = hasChocolate;
this .fatContent = fatContent;
}
public Icecream( Icecream icecream) {
this .name = icecream.name ;
this .hasChocolate = icecream.hasChocolate ;
this .fatContent = icecream.fatContent ;
}
return name;
}
public boolean hasChocolate( ) {
return hasChocolate;
}
public int getFatContent( ) {
return fatContent;
}
public static double averageFatContent( Icecream[ ] icecreams) {
int totalFatContent = 0 ;
int count = 0 ;
for ( Icecream icecream : icecreams) {
if ( icecream.getFatContent ( ) != 0 ) {
totalFatContent += icecream.getFatContent ( ) ;
count++;
}
}
return ( double ) totalFatContent / count;
}
public static int countChocolateIcecream( Icecream[ ] icecreams) {
int count = 0 ;
for ( Icecream icecream : icecreams) {
if ( icecream.hasChocolate ( ) ) {
count++;
}
}
return count;
}
public void print( ) {
System .
out .
println ( "Название: " + name
) ; if ( hasChocolate) {
System .
out .
println ( "Содержит шоколад." ) ; } else {
System .
out .
println ( "Не содержит шоколад." ) ; }
if ( fatContent != 0 ) {
System .
out .
println ( "Процент жирности: " + fatContent
) ; }
}
}
CnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBJY2VjcmVhbVtdIGljZWNyZWFtcyA9IG5ldyBJY2VjcmVhbVs0XTsKICAgICAgICBpY2VjcmVhbXNbMF0gPSBuZXcgSWNlY3JlYW0oItCo0L7QutC+0LvQsNC00L3QvtC1IiwgdHJ1ZSwgNSk7CiAgICAgICAgaWNlY3JlYW1zWzFdID0gbmV3IEljZWNyZWFtKCLQodC70LjQstC+0YfQvdC+0LUiLCBmYWxzZSk7CiAgICAgICAgaWNlY3JlYW1zWzJdID0gbmV3IEljZWNyZWFtKCk7CiAgICAgICAgaWNlY3JlYW1zWzNdID0gbmV3IEljZWNyZWFtKGljZWNyZWFtc1swXSk7CgogICAgICAgIGZvciAoSWNlY3JlYW0gaWNlY3JlYW0gOiBpY2VjcmVhbXMpIHsKICAgICAgICAgICAgaWNlY3JlYW0ucHJpbnQoKTsKICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi0KHRgNC10LTQvdC40Lkg0L/RgNC+0YbQtdC90YIg0LbQuNGA0L3QvtGB0YLQuDogIiArIEljZWNyZWFtLmF2ZXJhZ2VGYXRDb250ZW50KGljZWNyZWFtcykpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi0JrQvtC70LjRh9C10YHRgtCy0L4g0LzQvtGA0L7QttC10L3Ri9GFINGBINGI0L7QutC+0LvQsNC00L7QvDogIiArIEljZWNyZWFtLmNvdW50Q2hvY29sYXRlSWNlY3JlYW0oaWNlY3JlYW1zKSk7CiAgICB9Cn0KCmNsYXNzIEljZWNyZWFtIHsKICAgIHByaXZhdGUgU3RyaW5nIG5hbWU7CiAgICBwcml2YXRlIGJvb2xlYW4gaGFzQ2hvY29sYXRlOwogICAgcHJpdmF0ZSBpbnQgZmF0Q29udGVudDsgCgogICAgcHVibGljIEljZWNyZWFtKCkgewogICAgICAgIHRoaXMoIiIsIGZhbHNlLCAwKTsKICAgIH0KCiAgICBwdWJsaWMgSWNlY3JlYW0oU3RyaW5nIG5hbWUsIGJvb2xlYW4gaGFzQ2hvY29sYXRlKSB7CiAgICAgICAgdGhpcyhuYW1lLCBoYXNDaG9jb2xhdGUsIDApOwogICAgfQoKICAgIHB1YmxpYyBJY2VjcmVhbShTdHJpbmcgbmFtZSwgYm9vbGVhbiBoYXNDaG9jb2xhdGUsIGludCBmYXRDb250ZW50KSB7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLmhhc0Nob2NvbGF0ZSA9IGhhc0Nob2NvbGF0ZTsKICAgICAgICB0aGlzLmZhdENvbnRlbnQgPSBmYXRDb250ZW50OwogICAgfQoKICAgIHB1YmxpYyBJY2VjcmVhbShJY2VjcmVhbSBpY2VjcmVhbSkgewogICAgICAgIHRoaXMubmFtZSA9IGljZWNyZWFtLm5hbWU7CiAgICAgICAgdGhpcy5oYXNDaG9jb2xhdGUgPSBpY2VjcmVhbS5oYXNDaG9jb2xhdGU7CiAgICAgICAgdGhpcy5mYXRDb250ZW50ID0gaWNlY3JlYW0uZmF0Q29udGVudDsKICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICB9CgogICAgcHVibGljIGJvb2xlYW4gaGFzQ2hvY29sYXRlKCkgewogICAgICAgIHJldHVybiBoYXNDaG9jb2xhdGU7CiAgICB9CgogICAgcHVibGljIGludCBnZXRGYXRDb250ZW50KCkgewogICAgICAgIHJldHVybiBmYXRDb250ZW50OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZG91YmxlIGF2ZXJhZ2VGYXRDb250ZW50KEljZWNyZWFtW10gaWNlY3JlYW1zKSB7CiAgICAgICAgaW50IHRvdGFsRmF0Q29udGVudCA9IDA7CiAgICAgICAgaW50IGNvdW50ID0gMDsKICAgICAgICBmb3IgKEljZWNyZWFtIGljZWNyZWFtIDogaWNlY3JlYW1zKSB7CiAgICAgICAgICAgIGlmIChpY2VjcmVhbS5nZXRGYXRDb250ZW50KCkgIT0gMCkgewogICAgICAgICAgICAgICAgdG90YWxGYXRDb250ZW50ICs9IGljZWNyZWFtLmdldEZhdENvbnRlbnQoKTsKICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIChkb3VibGUpIHRvdGFsRmF0Q29udGVudCAvIGNvdW50OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvdW50Q2hvY29sYXRlSWNlY3JlYW0oSWNlY3JlYW1bXSBpY2VjcmVhbXMpIHsKICAgICAgICBpbnQgY291bnQgPSAwOwogICAgICAgIGZvciAoSWNlY3JlYW0gaWNlY3JlYW0gOiBpY2VjcmVhbXMpIHsKICAgICAgICAgICAgaWYgKGljZWNyZWFtLmhhc0Nob2NvbGF0ZSgpKSB7CiAgICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb3VudDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBwcmludCgpIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCd0LDQt9Cy0LDQvdC40LU6ICIgKyBuYW1lKTsKICAgICAgICBpZiAoaGFzQ2hvY29sYXRlKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi0KHQvtC00LXRgNC20LjRgiDRiNC+0LrQvtC70LDQtC4iKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCd0LUg0YHQvtC00LXRgNC20LjRgiDRiNC+0LrQvtC70LDQtC4iKTsKICAgICAgICB9CiAgICAgICAgaWYgKGZhdENvbnRlbnQgIT0gMCkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCf0YDQvtGG0LXQvdGCINC20LjRgNC90L7RgdGC0Lg6ICIgKyBmYXRDb250ZW50KTsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CiAgICB9Cn0K