Created
June 21, 2020 22:02
-
-
Save olegrewko/71b799f83d5a8eac4dc77594ed070cbb to your computer and use it in GitHub Desktop.
Кошки ООП [массив] 12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package IgorDolgov.cats; | |
| import java.util.Random; | |
| //class Cat { | |
| // int consumed; // храним кол-во съеденной пищи | |
| // void eatFrom(Plate plate) { | |
| // // int portion = получите из тарелки порцию еды (так чтобы и в тарелке еда тоже уменьшилась) | |
| // // увеличьте consumed на размер этой порции | |
| // System.out.println("Кошка съела из тарелки " + portion); | |
| // System.out.println("Кошка всего съела " + consumed); | |
| // } | |
| //} | |
| // | |
| // | |
| //class Plate { | |
| // int amount = 100; // сколько еды в тарелке осталось | |
| // int portion = 10; // размер порции | |
| // void feed(Cat cat) { | |
| // // уменьшите размер amount на размер порции (сделайте проверку, чтобы было нельзя съесть больше, чем в тарелке осталось) | |
| // // увеличьте у кошки кол-во потребленной ей еды на размер этой порции | |
| // System.out.println("Тарелка покормила кошку на " + portion); | |
| // System.out.println("В тарелке осталось " + amount); | |
| // System.out.println("Кошка всего съела " + cat.consumed); | |
| // } | |
| // int getPortion() { | |
| // // уменьшите размер оставшейся в тарелке еды на размер порции | |
| // // (сделайте проверку, чтобы было нельзя съесть больше, чем в тарелке осталось) | |
| // // (если еды мало – то всю ее и съесть) | |
| // System.out.println("В тарелке осталось " + amount); | |
| // // верните потребленный размер порции с помощью return | |
| // } | |
| //} | |
| // | |
| // | |
| //public static void main(String[] args) { | |
| // Plate plate = new Plate(); // Общая на всех тарелка | |
| // Cat cat = new Cat(); // Кошка | |
| // cat.eatFrom(plate); // кошка кушает из тарелки, которую передали ей в параметрах | |
| // plate.feed(cat); // тарелка "кормит" кошку, которую ей передали в параметры | |
| // } | |
| //-------------------------------------------------------------------------------------------- | |
| //class Count { | |
| // public static int count; | |
| // | |
| // public int setCount(int count) { | |
| // this.count = count; | |
| // return count; | |
| // } | |
| // | |
| // public static int getNextCount() { | |
| // count++; | |
| // return count; | |
| // } | |
| //} | |
| // Count count = new Count(); | |
| // System.out.println("Устанавливаем счетчик кошек в " + count.setCount(10)); | |
| public class Main { | |
| public static void main(String[] args) { | |
| // Массив для 12 кошек | |
| final int SIZE = 12; | |
| Cat[] cats = new Cat[SIZE]; | |
| cats[0] = new Cat("Земфира", 1); | |
| cats[1] = new Cat("Стелла", 2); | |
| cats[2] = new Cat("Лора", 3); | |
| cats[3] = new Cat("Маша", 4); | |
| cats[4] = new Cat("Миша", 5); | |
| cats[5] = new Cat("Галя", 6); | |
| cats[6] = new Cat("Kate", 7); | |
| cats[7] = new Cat("Petr", 8); | |
| cats[8] = new Cat("Boris", 9); | |
| cats[9] = new Cat("Barsic", 10); | |
| cats[10] = new Cat(11); | |
| cats[11] = new Cat(12); | |
| System.out.println("------------------------------------------------"); | |
| for (Cat e : cats) { | |
| System.out.printf("name = %-10s, count = %2d, id = %4d%n", e.getName(), e.getCount(), e.getId()); | |
| } | |
| System.out.println("------------------------------------------------"); | |
| Bowl bowl = new Bowl();//Общая на всех чаша | |
| bowl.setVoda(2000);//Наливаем воды | |
| Plate plate = new Plate();// Общая на всех тарелка | |
| plate.setEda(3000);//Кладем еды | |
| Plate.portionEda = Plate.setPortionEda(100); | |
| Bowl.portionVoda = Bowl.setPortionVoda(200); | |
| System.out.printf("Установленный размер стандартной порции еды %4d%n", Plate.portionEda); | |
| System.out.printf("Установленный размер стандартной порции воды %4d%n", Bowl.portionVoda); | |
| System.out.println("Чаша будет неизвестно кого поить 3 раза: 100, 400, 300 нестандартными порциями переданными в параметрах"); | |
| bowl.drink(100); | |
| bowl.drink(400); | |
| bowl.drink(300); | |
| cats[0].drink(bowl, Bowl.portionVoda); | |
| cats[1].drink(bowl, Bowl.portionVoda); | |
| cats[2].drink(bowl, Bowl.portionVoda); | |
| bowl.drink(200); | |
| cats[0].eatFrom(plate, Plate.portionEda); // кошка кушает из тарелки, которую передали ей в параметрах | |
| cats[1].eatFrom(plate, Plate.portionEda); // кошка2 кушает из тарелки, которую передали ей в параметрах | |
| plate.feed(200); | |
| plate.feed(600); | |
| plate.feed(); | |
| plate.feed(1000); | |
| plate.feed(cats[9]); | |
| cats[9].eat(plate, Plate.portionEda); | |
| cats[8].eat(plate, Plate.portionEda); | |
| cats[7].eat(plate, Plate.portionEda); | |
| cats[6].eat(plate, Plate.portionEda); | |
| cats[5].eat(plate, Plate.portionEda); | |
| cats[9].eat(plate, Plate.portionEda); // кошка кушает из тарелки, которую передали ей в параметрах | |
| plate.feed(cats[2], Plate.portionEda); // тарелка "кормит" кошку, которую ей передали в параметры | |
| System.out.println("-------------------------------------------------------"); | |
| System.out.println("Проверяем номера и идентификаторы кошек"); | |
| System.out.println("-------------------------------------------------------"); | |
| int sumCatsEda = 0; | |
| for (int k = 0; k < 12; k++) { | |
| sumCatsEda += cats[k].consumedEda; | |
| System.out.println("Кошка #" + cats[k].id + " " + cats[k].name + " номер " + cats[k].count + " всего употребила еды " + cats[k].consumedEda); | |
| } | |
| System.out.println("-------------------------------------------------------"); | |
| System.out.println("Общее кол-во еды потреблённой всеми кошками " + sumCatsEda); | |
| System.out.println("Общее количество сьеденной неизвестно кем еды (Гости?) " + plate.consumedEdaNemo); | |
| int sumEda = sumCatsEda + plate.consumedEdaNemo; | |
| int sumEdaSet = sumEda + plate.eda; | |
| System.out.println("Общее количество осталось еды " + plate.eda); | |
| System.out.println("Еды всего съедено + остатки в чашке = " + sumEdaSet + " а было еды " + plate.amountEdaBegin); | |
| System.out.println("-------------------------------------------------------"); | |
| int sumCatsVoda = 0; | |
| for (int k = 0; k < 12; k++) { | |
| sumCatsVoda += cats[k].consumedVoda; | |
| System.out.println("Кошка #" + cats[k].id + " " + cats[k].name + " номер " + cats[k].count + " всего употребила воды " + cats[k].consumedVoda); | |
| } | |
| System.out.println("-------------------------------------------------------"); | |
| System.out.println("Общее кол-во потреблённой всеми нашими кошками воды " + sumCatsVoda); | |
| System.out.println("Общее количество выпитой неизвестно кем воды (Алкоголики?) " + bowl.consumedVodaNemo); | |
| System.out.println("Общее количество осталось воды " + bowl.voda); | |
| int sumVoda = sumCatsVoda + bowl.consumedVodaNemo; | |
| int sumVodaSet = sumVoda + bowl.voda; | |
| System.out.println("Количество выпитой воды + сколько осталось в чашке = " + sumVodaSet + " а было воды " + bowl.amountVodaBegin); | |
| } | |
| } | |
| //-------------------------------------------------------------------------------------------------------- | |
| class Cat { | |
| public int id; | |
| public static int nextId; | |
| public int count; | |
| private static int nextCount; | |
| public String name = ""; | |
| public int consumedVoda; | |
| public int consumedEda; | |
| static | |
| // static initialization block | |
| { | |
| var generator = new Random(); | |
| // set nextId to a random number between 0 and 9999 | |
| nextId = generator.nextInt(999); | |
| } | |
| // count initialization block | |
| { | |
| count = nextCount; | |
| nextCount++; | |
| } | |
| // object initialization block | |
| { | |
| id = nextId; | |
| nextId++; | |
| } | |
| // three overloaded constructors | |
| public Cat(String n, int c) { | |
| // this.id = id; | |
| name = n; | |
| count = c; | |
| } | |
| public Cat(int c) { | |
| // calls the Employee(String, int) constructor | |
| this("Cat #" + nextId, c); | |
| } | |
| // the default constructor | |
| public Cat() { | |
| // name initialized to ""--see above | |
| // count not explicitly set--initialized to 0 | |
| // id initialized in initialization block | |
| } | |
| public int setCount(int c) { | |
| this.count = c; | |
| return count; | |
| } | |
| public String getName() { | |
| return name; | |
| } | |
| public int getCount() { | |
| return count; | |
| } | |
| public int getId() { | |
| return id; | |
| } | |
| //------------------------------------------------------------------------------------------ | |
| public void setName(String name) { | |
| this.name = name; | |
| } | |
| public int eat(Plate plate, int portionEda) { | |
| Plate.eda = Plate.eda - portionEda; | |
| consumedEda = consumedEda + portionEda; | |
| if (Plate.eda < 0) { | |
| Plate.eda = 0; | |
| System.out.println("Еда закончилась"); | |
| } else { | |
| System.out.println(name + " #" + count + " сьел сейчас " + portionEda + " а общее кол-во сьеденной им еды " + consumedEda); | |
| System.out.println(Plate.eda + " остаток еды в тарелке"); | |
| } | |
| return Plate.eda; | |
| } | |
| public int drink(Bowl bowl, int portionVoda) { | |
| Bowl.voda = Bowl.voda - portionVoda; | |
| consumedVoda = consumedVoda + portionVoda; | |
| if (Bowl.voda < 0) { | |
| Bowl.voda = 0; | |
| System.out.println("Вода закончилась"); | |
| } else { | |
| System.out.println(name + " #" + count + " выпил сейчас " + portionVoda + " а общее кол-во выпитой им воды " + consumedVoda); | |
| System.out.println(Bowl.voda + " остаток воды в чашке"); | |
| } | |
| return Bowl.voda; | |
| } | |
| public int eatFrom(Plate plate, int portion) { | |
| Plate.eda = Plate.eda - portion; | |
| consumedEda = consumedEda + portion; | |
| if (Plate.eda < 0) { | |
| Plate.eda = 0; | |
| System.out.println("Еда закончилась"); | |
| } else { | |
| System.out.println(name + " #" + count + " сьел " + portion + " а общее кол-во сьеденной им еды " + consumedEda); | |
| System.out.println(Plate.eda + " остаток еды в тарелке"); | |
| } | |
| return Plate.eda; | |
| } | |
| } | |
| //----------------------------------------------------------------------------------- | |
| class Bowl { | |
| public static int voda; | |
| public static int consumedVoda; | |
| public static int portionVoda; | |
| public int consumedVodaNemo; | |
| public static int amountVodaBegin; | |
| public static void setVoda(int i) { | |
| int amountVoda = i; | |
| amountVodaBegin = amountVoda; | |
| Bowl.voda = i; | |
| System.out.printf("Воды в чаше сначала %20d%n", amountVoda); | |
| } | |
| public static int drink(Cat cat, int portionVoda) { | |
| consumedVoda = consumedVoda + portionVoda; | |
| Bowl.voda = Bowl.voda - portionVoda; | |
| if (Bowl.voda < 0) { | |
| Bowl.voda = 0; | |
| System.out.println("Вода закончилась"); | |
| } else { | |
| System.out.println("Воды осталось %20d%n" + Bowl.voda); | |
| } | |
| return Bowl.voda; | |
| } | |
| public static int setPortionVoda(int amountVoda) { | |
| int portionVoda = amountVoda; | |
| return portionVoda; | |
| } | |
| public static int getPortionVoda() { | |
| Bowl.voda = Bowl.voda - Bowl.portionVoda; | |
| if (Bowl.voda < 0) { | |
| Bowl.voda = 0; | |
| System.out.println("Вода закончилась"); | |
| } else { | |
| System.out.println("Воды осталось " + Bowl.voda); | |
| } | |
| return portionVoda; | |
| } | |
| public int drink(int portionVoda) { | |
| consumedVodaNemo = consumedVodaNemo + portionVoda; | |
| Bowl.voda = Bowl.voda - portionVoda; | |
| if (Bowl.voda < 0) { | |
| Bowl.voda = 0; | |
| System.out.println("Вода закончилась"); | |
| } else { | |
| System.out.println("Неизвестно кто выпил " + portionVoda + " Воды осталось " + Bowl.voda); | |
| } | |
| return Bowl.voda; | |
| } | |
| } | |
| //----------------------------------------------------------------------- | |
| class Plate { | |
| public static int eda; | |
| public static int portionEda; | |
| public int consumedEdaNemo; | |
| public static int amountEdaBegin; | |
| public static int feed(Cat cat, int portionEda) { | |
| cat.consumedEda = cat.consumedEda + portionEda; | |
| Plate.eda = Plate.eda - portionEda; | |
| if (Plate.eda < 0) { | |
| Plate.eda = 0; | |
| System.out.println("Еда закончилась"); | |
| } else { | |
| System.out.println("Еды осталось " + Plate.eda + " Тарелка покормила " + cat.name); | |
| } | |
| return Plate.eda; | |
| } | |
| public int feed(int portion) { | |
| consumedEdaNemo = consumedEdaNemo + portion; | |
| Plate.eda = Plate.eda - portion; | |
| if (Plate.eda < 0) { | |
| Plate.eda = 0; | |
| System.out.println("Еда закончилась"); | |
| } else { | |
| System.out.println("Кто-то поел " + portion + " и еды осталось " + Plate.eda); | |
| } | |
| return Plate.eda; | |
| } | |
| public int feed(Cat cat) { | |
| cat.consumedEda = cat.consumedEda + portionEda; | |
| Plate.eda = Plate.eda - portionEda; | |
| if (Plate.eda < 0) { | |
| Plate.eda = 0; | |
| System.out.println("Еда закончилась"); | |
| } else { | |
| System.out.println(cat.name + " сьел стандартную порцию 100 и Еды осталось " + Plate.eda); | |
| } | |
| return Plate.eda; | |
| } | |
| public static int setPortionEda(int amountEda) { | |
| int portionEda = amountEda; | |
| return portionEda; | |
| } | |
| public static int getPortionEda() { | |
| Plate.eda = Plate.eda - Plate.portionEda; | |
| if (Plate.eda < 0) { | |
| Plate.eda = 0; | |
| System.out.println("Еда закончилась"); | |
| } else { | |
| System.out.println("Еды осталось " + Plate.eda); | |
| } | |
| return portionEda; | |
| } | |
| public void setEda(int i) { | |
| Plate.eda = i; | |
| int amountVoda = i; | |
| amountEdaBegin = amountVoda; | |
| System.out.printf("Еды в тарелке сначала %20d%n", i); | |
| } | |
| public int feed() { | |
| consumedEdaNemo = consumedEdaNemo + portionEda; | |
| Plate.eda = Plate.eda - portionEda; | |
| if (Plate.eda < 0) { | |
| Plate.eda = 0; | |
| System.out.println("Еда закончилась"); | |
| } else { | |
| System.out.println("Неизвестный сьел стандартную порцию 100 и еды осталось " + Plate.eda); | |
| } | |
| return Plate.eda; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment