ЗАДАЧА 13.02.01.
package com.javarush.test.level13.lesson02.task01; /* Пиво 1. Подумай, какой из двух интерфейсов нужно реализовать в классе Beer. 2. Добавь к классу Beer этот интерфейс и реализуйте все нереализованные методы. 3. Подумай, как связаны переменная READY_TO_GO_HOME и метод isReadyToGoHome. 4. Верни значение переменной READY_TO_GO_HOME в методе isReadyToGoHome. */ public class Solution { public static void main(String[] args) throws Exception { } public interface Drink { void askMore(String message); void sayThankYou(); boolean isReadyToGoHome(); } public interface Alcohol extends Drink { boolean READY_TO_GO_HOME = false; void sleepOnTheFloor(); } public static class Beer implements Alcohol { @Override public void sleepOnTheFloor() { } @Override public void askMore(String message) { } @Override public void sayThankYou() { } @Override public boolean isReadyToGoHome() { return false; } } }
ЗАДАЧА 13.02.02.
package com.javarush.test.level13.lesson02.task02; /* Пиво: возвращение Добавь к классу AlcoholicBeer интерфейс Drink и реализуй все нереализованные методы. */ public class Solution { public static void main(String[] args) throws Exception { Drink beer = new AlcoholicBeer(); System.out.println(beer.toString()); } public interface Drink { boolean isAlcoholic(); } public static class AlcoholicBeer implements Drink { @Override public boolean isAlcoholic() { return true; } @Override public String toString() { if (isAlcoholic()) { return "Напиток алкогольный"; } else { return "Напиток безалкогольный"; } } } }
ЗАДАЧА 13.02.03.
package com.javarush.test.level13.lesson02.task03; /* Пиво и кола Реализуй интерфейс Drink в классах Beer и Cola. */ public class Solution { public static void main(String[] args) throws Exception { print(new Beer()); print(new Cola()); } private static void print(Drink drink) { System.out.println(drink.getClass().getSimpleName()); } public interface Drink { boolean isAlcoholic(); } public static class Beer implements Drink { @Override public boolean isAlcoholic() { return true; } } public static class Cola implements Drink { @Override public boolean isAlcoholic() { return false; } } }
ЗАДАЧА 13.02.04.
package com.javarush.test.level13.lesson02.task04; /* Selectable и Updatable 1. Создай класс Screen. 2. Реализуй в нем интерфейсы Selectable с методом onSelect, Updatable с методом refresh. */ public class Solution { public static void main(String[] args) throws Exception { } interface Selectable { void onSelect(); } interface Updatable { void refresh(); } //напишите тут ваш класс public static class Screen implements Selectable, Updatable { @Override public void onSelect() { } @Override public void refresh() { } } }
ЗАДАЧА 13.02.05.
package com.javarush.test.level13.lesson02.task05; /* 4 ошибки Исправь 4 ошибки в программе, чтобы она компилировалась. Объявление интерфейсов не изменять. */ public class Solution { public static void main(String[] args) throws Exception { System.out.println(new Hobbie().HOBBIE.toString()); System.out.println(new Hobbie().toString()); } interface Desire { } interface Dream { static Hobbie HOBBIE = new Hobbie(); } static class Hobbie implements Dream, Desire { static int INDEX = 1; @Override public String toString() { INDEX++; return "" + INDEX; } } }
ЗАДАЧА 13.02.06.
package com.javarush.test.level13.lesson02.task06; /* Баг в initializeIdAndName 1. Подумать, что в программе неправильно. 2. Вынести реализацию метода initializeIdAndName в класс User. 3. initializeIdAndName в классе User должен возвращать тип User. 4. Поправить программу, чтобы компилировалась и работала. */ public class Solution { public static void main(String[] args) throws Exception { System.out.println(Matrix.NEO); System.out.println(Matrix.TRINITY); } static class Matrix { public static DBObject NEO = new User().initializeIdAndName(1, "Neo"); public static DBObject TRINITY = new User().initializeIdAndName(2, "Trinity"); } interface DBObject { DBObject initializeIdAndName(long id, String name); } static class User implements DBObject { public DBObject initializeIdAndName(long id, String name) { this.id = id; this.name = name; return this; } long id; String name; @Override public String toString() { return String.format("User has name %s, id = %d", name, id); } } }
ЗАДАЧА 13.02.07.
package com.javarush.test.level13.lesson02.task07; /* Параметризованый интерфейс В классе StringObject реализуй интерфейс SimpleObject с параметром типа String. */ public class Solution { public static void main(String[] args) throws Exception { } interface SimpleObject<T> { SimpleObject<T> getInstance(); } class StringObject implements SimpleObject<String> //допишите здесь ваш код { @Override public SimpleObject<String> getInstance() { return null; } } }
ЗАДАЧА 13.02.08.
package com.javarush.test.level13.lesson02.task08; /* Жив или нет 1. Создай интерфейс Person. 2. Добавь в него метод isAlive(), который проверяет, жив человек или нет. 3. Подумай, какой тип должен возвращать этот метод. 4. Создай интерфейс Presidentable. 5. Унаследуй интерфейс Presidentable от интерфейса Person. */ public class Solution { public static void main(String[] args) throws Exception { } public interface Person { boolean isAlive(); } public static class IsAlive implements Person { @Override public boolean isAlive() { return true; } } public interface Presidentable extends Person { } }
ЗАДАЧА 13.02.09.
package com.javarush.test.level13.lesson02.task09; /* Наследование интерфейса 1. Создать интерфейс Movable с методом speed. 2. Метод speed возвращает значение типа Double и не принимает параметров. 3. Создать и унаследовать интерфейс Runable от интерфейса Movable. 4. Добавить в интерфейс Runable метод speed. 5. Метод speed возвращает значение типа Double и принимает один параметр типа Runable. */ public class Solution { public static void main(String[] args) throws Exception { } public interface Movable { Double speed(); } public interface Runable extends Movable { Double speed(Runable a); } }
ЗАДАЧА 13.02.10.
package com.javarush.test.level13.lesson02.task10; /* CleverMan и SmartGirl 1. Добавь интерфейсы Secretary и Boss к классам CleverMan и SmartGirl. По одному на каждый. Подумай, кому какой. 2. Унаследуй интерфейсы Secretary и Boss от интерфейсов Person и Workable так, чтобы все методы у классов CleverMan и SmartGirl оказались объявленными в каком-то интерфейсе. */ public class Solution { public static void main(String[] args) throws Exception { } interface Person { void use(Person person); void startToWork(); } interface Workable { boolean wantGetExtraWork(); } interface Secretary extends Person { } interface Boss extends Workable, Person { } class CleverMan implements Boss { public void use(Person person) { person.startToWork(); } public void startToWork() { } public boolean wantGetExtraWork() { return true; } } class SmartGirl implements Secretary { public void use(Person person) { } public void startToWork() { } } }
Leave A Comment