ЗАДАЧА 12.12.01.

package com.javarush.test.level12.lesson12.home01;

/* Метод getName в классе Cat
Переопредели метод getName в классе Cat так, чтобы программа выдавала на экран надпись
«Я - кот».
*/

public class Solution
{
    public static void main(String[] args)
    {
        Pet pet = new Cat();

        System.out.println(pet.getName());
    }

    public static class Pet
    {
        public String getName()
        {
            return "Я - пушистик";
        }
    }

    public static class Cat extends Pet
    {
        public String getName()
        {
            return ("Я - кот");
        }
    }
}

 

ЗАДАЧА 12.12.02.

package com.javarush.test.level12.lesson12.home02;

/* Метод setName в классе Cat
Переопредели метод setName в классе Cat так, чтобы программа выдавала на экран надпись
«Я - кот».
*/

public class Solution
{
    public static void main(String[] args)
    {
        Pet pet = new Pet();
        pet.setName("Я - пушистик");

        System.out.println(pet.getName());
    }

    public static class Pet
    {
        protected String name;

        public Pet()
        {
        }

        public String getName()
        {
            return name;
        }

        public void setName(String name)
        {
            this.name = name;
        }

    }

    public static class Cat extends Pet
    {
        @Override
        public void setName(String name)
        {
            super.setName("Я - кот");
        }
    }
}

 

ЗАДАЧА 12.12.03.

package com.javarush.test.level12.lesson12.home03;

/* Добавь один метод в класс Cat
Добавь один метод в класс Cat так, чтобы программа ничего не выводила на экран.
*/

public class Solution
{
    public static void main(String[] args)
    {
        Pet pet = new Cat();
        pet.setName("Я - пушистик");

        System.out.println(pet.getName());
    }

    public static class Pet
    {
        protected String name;

        public Pet()
        {
        }

        public final String getName()
        {
            return name;
        }

        public void setName(String name)
        {
            this.name = name;
        }

    }

    public static class Cat extends Pet
    {
        public void setName(String name)
        {
            this.name = "";
        }
    }
}

 

ЗАДАЧА 12.12.04.

package com.javarush.test.level12.lesson12.home04;

/* Что это? «Кот», «Тигр», «Лев», «Бык», «хз»
Напиши метод, который определяет, какой объект передали в него.
Программа должна выводить на экран одну из надписей:
«Кот», «Тигр», «Лев», «Бык», «хз».
*/

public class Solution
{
    public static void main(String[] args)
    {
        System.out.println(getObjectType(new Cat()));
        System.out.println(getObjectType(new Tiger()));
        System.out.println(getObjectType(new Lion()));
        System.out.println(getObjectType(new Bull()));
        System.out.println(getObjectType(new Pig()));
    }

    public static String getObjectType(Object o)
    {
        //напишите тут ваш код
        if (o instanceof Cat) return "Кот";
        else if (o instanceof Tiger) return "Тигр";
        else if (o instanceof Lion) return "Лев";
        else if (o instanceof Bull) return "Бык";

        else return "хз";
    }

    public static class Cat
    {
    }

    public static class Tiger
    {
    }

    public static class Lion
    {
    }

    public static class Bull
    {
    }

    public static class Pig
    {
    }
}

 

ЗАДАЧА 12.12.05.

package com.javarush.test.level12.lesson12.home05;

/* Что это? «Кот», «Тигр», «Лев», «Бык», «Корова», «Животное»
Напиши метод, который определяет, какой объект передали в него.
Программа должна выводить на экран одну из надписей:
«Кот», «Тигр», «Лев», «Бык», «Корова», «Животное».
Замечание: постарайся определять тип животного как можно более точно.
*/

public class Solution
{
    public static void main(String[] args)
    {
        System.out.println(getObjectType(new Cat()));
        System.out.println(getObjectType(new Tiger()));
        System.out.println(getObjectType(new Lion()));
        System.out.println(getObjectType(new Bull()));
        System.out.println(getObjectType(new Cow()));
        System.out.println(getObjectType(new Animal()));
    }

    public static String getObjectType(Object o)
    {
        //напишите тут ваш код

        if (o instanceof Tiger) return "Тигр";
        else if (o instanceof Lion) return "Лев";
        else if (o instanceof Cat) return "Кот";
        else if (o instanceof Bull) return "Бык";
        else if (o instanceof Cow) return "Корова";

        else return "Животное";
    }

    public static class Cat  extends Animal   //<--Классы наследуются!!
    {
    }

    public static class Tiger  extends Cat
    {
    }

    public static class Lion  extends Cat
    {
    }

    public static class Bull  extends Animal
    {
    }

    public static class Cow  extends Animal
    {
    }

    public static class Animal
    {
    }
}

 

ЗАДАЧА 12.12.06.

package com.javarush.test.level12.lesson12.home06;

/* Fly, Run, Climb для классов Cat, Dog, Tiger, Duck
1. Внутри класса Solution создай интерфейс public interface Fly(летать) с методом void fly().
2. Внутри класса Solution создай интерфейс public interface Climb(лазить по деревьям) с методом void climb().
3. Внутри класса Solution создай интерфейс public interface Run(бегать) с методом void run().
4. Подумай логически, какие именно интерфейсы нужно добавить для каждого класса.
5. Добавь интерфейсы классам Cat(кот), Dog(собака), Tiger(тигр), Duck(Утка).
*/

public class Solution
{
    public interface Fly
    {
        void fly();
    }
    public interface Climb
    {
        void climb();
    }
    public interface Run
    {
        void run();
    }

    public class Cat implements Climb, Run
    {
        @Override
        public void run()
        {

        }

        @Override
        public void climb()
        {

        }
    }

    public class Dog implements Run
    {
        @Override
        public void run()
        {

        }
    }

    public class Tiger extends Cat implements Climb, Run
    {
    }

    public class Duck implements Fly, Run
    {
        @Override
        public void fly()
        {

        }

        @Override
        public void run()
        {

        }
    }
}

 

ЗАДАЧА 12.12.07.

package com.javarush.test.level12.lesson12.home07;

/* Fly, Run, Swim для классов Duck, Penguin, Toad
Есть интерфейсы Fly(летать), Swim(плавать), Run(бегать).
Добавь эти интерфейсы классам Duck(утка), Penguin(пингвин), Toad(жаба)
*/

public class Solution
{
    public static void main(String[] args)
    {

    }

    public interface Fly
    {
        public void fly();
    }

    public interface Run
    {
        public void run();
    }

    public interface Swim
    {
        public void swim();
    }

    public class Duck implements Fly, Run, Swim
    {

        @Override
        public void fly()
        {

        }

        @Override
        public void run()
        {

        }

        @Override
        public void swim()
        {

        }
    }

    public class Penguin implements Run, Swim
    {

        @Override
        public void run()
        {

        }

        @Override
        public void swim()
        {

        }
    }

    public class Toad implements Swim
    {

        @Override
        public void swim()
        {

        }
    }
}

 

ЗАДАЧА 12.12.08.

package com.javarush.test.level12.lesson12.home08;

/* Интерфейсы к классу Human
Добавь как можно больше интерфейсов к классу Human, но чтобы он не стал абстрактным классом.
Добавлять методы в класс Human запрещается.
*/

public class Solution
{
    public static void main(String[] args)
    {
        Human human = new Human();
        System.out.println(human);
    }

    public static interface Worker
    {
        public void workLazy();
    }

    public static interface Businessman
    {
        public void workHard();
    }

    public static interface Secretary
    {
        public void workLazy();
    }

    public static interface Miner
    {
        public void workVeryHard();
    }

    public static class Human implements Worker, Businessman, Secretary, Miner
    {

        public void workHard()
        {
        }

        public void workLazy()
        {
        }

        @Override
        public void workVeryHard()
        {

        }
    }
}

 

ЗАДАЧА 12.12.09.

package com.javarush.test.level12.lesson12.home09;

/* Родитель класса CTO
Добавь такой класс-родитель к классу CTO(технический директор), чтобы класс перестал быть абстрактным.
Добавлять/реализовывать методы в классе CTO запрещается.
*/

public class Solution
{

    public static void main(String[] args)
    {
        CTO cto = new CTO();
        System.out.println(cto);
    }

    public static interface Businessman
    {
        public void workHard();
    }
    public static class One implements Businessman
    {

        @Override
        public void workHard()
        {

        }
    }

    public static class CTO  extends One
    {

    }


}

 

ЗАДАЧА 12.12.10.

package com.javarush.test.level12.lesson12.home10;

/* Метод, который выводит на экран число 10
Добавь еще один метод, чтобы программа выводила на экран число 10.
Подсказка: используй перегрузку методов.
*/

public class Solution
{
    public static void main(String[] args)
    {
        Integer i = 5;
        int x = transformValue(i);

        System.out.println(x);
    }
    public static int transformValue(Integer i)
    {
        return i*2;
    }

    public static int transformValue(int i)
    {
        return i*i;
    }
}