ЗАДАЧА 11.08.01.

package com.javarush.test.level11.lesson08.task01;

/* Все скрыто
Скрыть все внутренние переменные класса Cat.
*/

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

    public class Cat
    {
        private String name;
        private int age;
        private int weight;

        public Cat()
        {
        }

        public Cat(String name, int age, int weight)
        {
            this.name = name;
            this.age = age;
            this.weight = weight;
        }
    }
}

ЗАДАЧА 11.08.02.

package com.javarush.test.level11.lesson08.task02;

/* Доступ есть
Скрыть все внутренние переменные класса Cat, но только те, к которым остается доступ с помощью методов.
*/

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

    public class Cat
    {
        private String name;
        private int age;
        public int weight;

        public Cat(String name, int age, int weight)
        {
            this.name = name;
            this.age = age;
            this.weight = weight;
        }

        public String getName()
        {
            return name;
        }

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

        public int getAge()
        {
            return age;
        }

        public void setAge(int age)
        {
            this.age = age;
        }
    }
}

ЗАДАЧА 11.08.03. С ПЕРВОГО РАЗА.

package com.javarush.test.level11.lesson08.task03;

/* Ничего не поменяешь
Скрыть все внутренние переменные класса Cat, а также методы, позволяющие менять внутреннее состояние объектов класса Cat.
*/

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

    public class Cat
    {
        private String name;
        private int age;
        private int weight;

        public Cat(String name, int age, int weight)
        {
            this.name = name;
            this.age = age;
            this.weight = weight;
        }

        public String getName()
        {
            return name;
        }

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

        public int getAge()
        {
            return age;
        }

        private void setAge(int age)
        {
            this.age = age;
        }
    }
}

ЗАДАЧА 11.08.04. С ПЕРВОГО РАЗА.

package com.javarush.test.level11.lesson08.task04;

/* Инкапсуляция для классов Cat и Dog
Скрыть все внутренние переменные класса Cat и Dog. Также скрыть все методы, кроме тех, с помощью которых эти классы взаимодействуют друг с другом.
*/

public class Solution
{
    public static void main(String[] args)
    {
        Cat cat = new Cat("Vaska",5);
        Dog dog = new Dog("Sharik",4);

        cat.isDogNear(dog);
        dog.isCatNear(cat);
    }

    public static class Cat
    {
        private String name;
        private int speed;

        private Cat(String name, int speed)
        {
            this.name = name;
            this.speed = speed;
        }

        private String getName()
        {
            return name;
        }

        private int getSpeed()
        {
            return speed;
        }

        public boolean isDogNear(Dog dog)
        {
            return this.speed > dog.getSpeed();
        }
    }

    public static  class Dog
    {
        private String name;
        private int speed;

        private Dog(String name, int speed)
        {
            this.name = name;
            this.speed = speed;
        }

        private String getName()
        {
            return name;
        }

        private int getSpeed()
        {
            return speed;
        }

        public boolean isCatNear(Cat cat)
        {
            return this.speed > cat.getSpeed();
        }
    }
}

ЗАДАЧА 11.08.05. С ПЕРВОГО РАЗА.

package com.javarush.test.level11.lesson08.task05;

/* Добавь недостающие переменные
Посмотри внимательно на методы и добавь недостающие переменные.
*/

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

    public class Cat
    {
        public String name;
        public int age;
        public int weight;
        public int speed;

        public Cat(String name, int age, int weight)
        {

        }

        public String getName()
        {
            return null;
        }

        public int getAge()
        {
            return 0;
        }

        public void setWeight(int weight)
        {

        }

        public void setSpeed(int speed)
        {

        }
    }
}