ЗАДАЧА 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