/* package whatever; // don't place package name! */
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 String name;
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;
}
public String getName() {
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);
}
System.out.println();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgSWNlY3JlYW1bXSBpY2VjcmVhbXMgPSBuZXcgSWNlY3JlYW1bNF07CgogICAgICAgIGljZWNyZWFtc1swXSA9IG5ldyBJY2VjcmVhbSgi0KjQvtC60L7Qu9Cw0LTQvdC+0LUiLCB0cnVlLCA1KTsKICAgICAgICBpY2VjcmVhbXNbMV0gPSBuZXcgSWNlY3JlYW0oItCh0LvQuNCy0L7Rh9C90L7QtSIsIGZhbHNlKTsKICAgICAgICBpY2VjcmVhbXNbMl0gPSBuZXcgSWNlY3JlYW0oKTsKICAgICAgICBpY2VjcmVhbXNbM10gPSBuZXcgSWNlY3JlYW0oaWNlY3JlYW1zWzBdKTsKCiAgICAgICAgZm9yIChJY2VjcmVhbSBpY2VjcmVhbSA6IGljZWNyZWFtcykgewogICAgICAgICAgICBpY2VjcmVhbS5wcmludCgpOwogICAgICAgIH0KCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQodGA0LXQtNC90LjQuSDQv9GA0L7RhtC10L3RgiDQttC40YDQvdC+0YHRgtC4OiAiICsgSWNlY3JlYW0uYXZlcmFnZUZhdENvbnRlbnQoaWNlY3JlYW1zKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQmtC+0LvQuNGH0LXRgdGC0LLQviDQvNC+0YDQvtC20LXQvdGL0YUg0YEg0YjQvtC60L7Qu9Cw0LTQvtC8OiAiICsgSWNlY3JlYW0uY291bnRDaG9jb2xhdGVJY2VjcmVhbShpY2VjcmVhbXMpKTsKICAgIH0KfQoKY2xhc3MgSWNlY3JlYW0gewogICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKICAgIHByaXZhdGUgYm9vbGVhbiBoYXNDaG9jb2xhdGU7CiAgICBwcml2YXRlIGludCBmYXRDb250ZW50OyAvLyDQv9GA0L7RhtC10L3RgiDQttC40YDQvdC+0YHRgtC4CgogICAgcHVibGljIEljZWNyZWFtKCkgewogICAgICAgIHRoaXMoIiIsIGZhbHNlLCAwKTsKICAgIH0KCiAgICBwdWJsaWMgSWNlY3JlYW0oU3RyaW5nIG5hbWUsIGJvb2xlYW4gaGFzQ2hvY29sYXRlKSB7CiAgICAgICAgdGhpcyhuYW1lLCBoYXNDaG9jb2xhdGUsIDApOwogICAgfQoKICAgIHB1YmxpYyBJY2VjcmVhbShTdHJpbmcgbmFtZSwgYm9vbGVhbiBoYXNDaG9jb2xhdGUsIGludCBmYXRDb250ZW50KSB7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLmhhc0Nob2NvbGF0ZSA9IGhhc0Nob2NvbGF0ZTsKICAgICAgICB0aGlzLmZhdENvbnRlbnQgPSBmYXRDb250ZW50OwogICAgfQoKICAgIHB1YmxpYyBJY2VjcmVhbShJY2VjcmVhbSBpY2VjcmVhbSkgewogICAgICAgIHRoaXMubmFtZSA9IGljZWNyZWFtLm5hbWU7CiAgICAgICAgdGhpcy5oYXNDaG9jb2xhdGUgPSBpY2VjcmVhbS5oYXNDaG9jb2xhdGU7CiAgICAgICAgdGhpcy5mYXRDb250ZW50ID0gaWNlY3JlYW0uZmF0Q29udGVudDsKICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICB9CgogICAgcHVibGljIGJvb2xlYW4gaGFzQ2hvY29sYXRlKCkgewogICAgICAgIHJldHVybiBoYXNDaG9jb2xhdGU7CiAgICB9CgogICAgcHVibGljIGludCBnZXRGYXRDb250ZW50KCkgewogICAgICAgIHJldHVybiBmYXRDb250ZW50OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZG91YmxlIGF2ZXJhZ2VGYXRDb250ZW50KEljZWNyZWFtW10gaWNlY3JlYW1zKSB7CiAgICAgICAgaW50IHRvdGFsRmF0Q29udGVudCA9IDA7CiAgICAgICAgaW50IGNvdW50ID0gMDsKICAgICAgICBmb3IgKEljZWNyZWFtIGljZWNyZWFtIDogaWNlY3JlYW1zKSB7CiAgICAgICAgICAgIGlmIChpY2VjcmVhbS5nZXRGYXRDb250ZW50KCkgIT0gMCkgewogICAgICAgICAgICAgICAgdG90YWxGYXRDb250ZW50ICs9IGljZWNyZWFtLmdldEZhdENvbnRlbnQoKTsKICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIChkb3VibGUpIHRvdGFsRmF0Q29udGVudCAvIGNvdW50OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvdW50Q2hvY29sYXRlSWNlY3JlYW0oSWNlY3JlYW1bXSBpY2VjcmVhbXMpIHsKICAgICAgICBpbnQgY291bnQgPSAwOwogICAgICAgIGZvciAoSWNlY3JlYW0gaWNlY3JlYW0gOiBpY2VjcmVhbXMpIHsKICAgICAgICAgICAgaWYgKGljZWNyZWFtLmhhc0Nob2NvbGF0ZSgpKSB7CiAgICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb3VudDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBwcmludCgpIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCd0LDQt9Cy0LDQvdC40LU6ICIgKyBuYW1lKTsKICAgICAgICBpZiAoaGFzQ2hvY29sYXRlKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi0KHQvtC00LXRgNC20LjRgiDRiNC+0LrQvtC70LDQtC4iKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCd0LUg0YHQvtC00LXRgNC20LjRgiDRiNC+0LrQvtC70LDQtC4iKTsKICAgICAgICB9CiAgICAgICAgaWYgKGZhdENvbnRlbnQgIT0gMCkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCf0YDQvtGG0LXQvdGCINC20LjRgNC90L7RgdGC0Lg6ICIgKyBmYXRDb250ZW50KTsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CiAgICB9Cn0K