level16.lesson07.task05

Сразу оговорюсь что задачка сама по себе не сложная, но по-моему она слишком опережает лекционный курс, т.к. ключевые слова volatile и synchronized на этот момент ещё не опроходились, и соответственно разобраться что на самом деле происходит в коде довольно затруднительно.
  • ,

level16.lesson03.task03

что-то не могу сообразить, как решить эту задачу. А именно добавить а List типа Thread объекты типа SpecialThread. Ведь менять тип листа и наследоваться от класса Thread по условию нельзя.
package com.javarush.test.level16.lesson03.task03;

import java.util.ArrayList;
import java.util.List;

/* Список и нити
В методе main добавить в статический объект list 5 нитей SpecialThread - различных объектов.
*/

public class Solution {
    public static volatile List<Thread> list = new ArrayList<Thread>(5);

    public static void main(String[] args) {
        list.add(new SpecialThread());
    }

    public static class SpecialThread implements Runnable {
        public void run() {
            System.out.println("it's run method inside SpecialThread");
        }
    }
}

level14.lesson08.home08

Ребята, подскажите в чём может быть дело, задача не проходит проверку, вроде всё правильно сделал…
package com.javarush.test.level14.lesson08.home08;

/* Исправление ошибок
1. Подумать, как связаны интерфейсы Swimable(способен плавать) и Walkable(способен ходить) с классом OceanAnimal(животное океана).
2. Расставить правильно наследование интерфейсов и класса OceanAnimal.
3. Подумать, как могут быть связаны классы  Orca(Касатка), Whale(Кит), Otter(Выдра) с классом OceanAnimal.
4. Расставить правильно наследование между классами Orca, Whale, Otter и классом OceanAnimal.
5. Подумать, какой класс должен реализовать интерфейс Walkable и добавить интерфей этому классу.
6. Подумать, какое животное еще не умеет плавать и добавить ему интерфейс Swimable.
*/

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

        Swimable animal = new Orca();
        animal.swim();
        animal = new Whale();
        animal.swim();
        animal = new Otter();
        animal.swim();

    }

    public static void test(Swimable animal)
    {
        animal.swim();
    }

    static interface Walkable
    {
        void walk();
    }

    static interface Swimable
    {
        void swim();
    }

    static abstract class OceanAnimal implements Swimable
    {
        public void swim()
        {
            OceanAnimal currentAnimal = (OceanAnimal) getCurrentAnimal();
            currentAnimal.swimming();
        }

        private void swimming()
        {
            System.out.println(getCurrentAnimal().getClass().getSimpleName() + " is swimming");
        }

        abstract Swimable getCurrentAnimal();
    }

    static class Orca extends OceanAnimal
    {

        @Override
        Swimable getCurrentAnimal()
        {
            return new Orca();
        }
    }

    static class Whale extends OceanAnimal
    {

        @Override
        Swimable getCurrentAnimal()
        {
            return new Whale();
        }
    }

    static class Otter implements Walkable, Swimable
    {

        Swimable getCurrentAnimal()
        {
            return new Otter();
        }

        @Override
        public void walk()
        {

        }

        @Override
        public void swim()
        {
            Otter currentAnimal = (Otter) getCurrentAnimal();
            currentAnimal.swimming();
        }

        private void swimming()
        {
            System.out.println(getCurrentAnimal().getClass().getSimpleName() + " is swimming");
        }
    }
}

выходные данные такие:
Orca is swimming
Whale is swimming
Otter is swimming
  • ,

level05.lesson12.home03

Ошибка — Программа не компилируется на сервере…
Но с ИСР никаких ошибок не показано, даже зеленых подчеркиваний

public class Solution
{
public static void main(String[] args)
{
Mouse jerryMouse = new Mouse(«Jerry», 12, 5);
Cat tomCat = new Cat («Tom», 24,10);
Dog daddyDog = new Dog («Daddy Dog», 48, 20);

}

public static class Mouse
{
String name;
int height;
int tail;

public Mouse(String name, int height, int tail)
{
this.name = name;
this.height = height;
this.tail = tail;
}
}

public static class Cat
{
String name;
int hearth;
int tail;

public Cat (String name, int hearth, int tail)
{
this.name = name;
this.hearth = hearth;
this.tail = tail;
}

}
public static class Dog
{
String name;
int heists;
int tail;

public Dog (String name, int heists, int tail)
{
this.name = name;
this.heists = heists;
this.tail = tail;
}

}
}

сомневаюсь.... package com.javarush.test.level07.lesson06.task04;

package com.javarush.test.level07.lesson06.task04;

/* 5 строчек в начало списка
1. Создай список строк.
2. Добавь в него 5 строчек с клавиатуры, но только добавлять не в конец списка, а в начало. 3.
3. Используя цикл выведи содержимое на экран, каждое значение с новой строки.
*/
import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //Напишите тут ваш код
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<String> list = new ArrayList<String>();
        for(int i = 0; i < 5; i++)
        {
        list.add(i, reader.readLine());
        }
        for(int i = 0; i < 5; i++)
        {
        System.out.println(list.get(4 - i));
        }
    }
}

Программа прошла тест полностью.
но тут не совсем как в задании:
2. Добавь в него 5 строчек с клавиатуры, но только добавлять не в конец списка, а в начало.

у меня оно просто выводит все элементы обратном порядке, а не добавляет их в начало списка каждый раз…

Правильно ли я сделал?
  • ,

level18.lesson08.task04

Привет всем!

Скорей всего не так понял задания. Или не так что-то делаю с исключениями. Програма не проходит тестирования, хотя в IDEA запускается норм и результат — если txt то все ок, если нет то UnsupportedFileNameException в косноли. Подскажите в какую сторону копать?

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

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/* UnsupportedFileName
Измените класс TxtInputStream так, чтобы он работал только с txt-файлами (*.txt)
Например, first.txt или name.1.part3.txt
Если передан не txt-файл, например, file.txt.exe, то конструктор должен выбрасывать исключение UnsupportedFileNameException
*/

public class TxtInputStream extends FileInputStream {

    public TxtInputStream(String fileName) throws FileNotFoundException, UnsupportedFileNameException
    {
        super(fileName);
        String test = fileName.substring(fileName.length() - 3, fileName.length());
        if (!test.equals("txt")) {
            throw new UnsupportedFileNameException();
        }
    }

//    public static void main(String[] args) throws FileNotFoundException, UnsupportedFileNameException
//    {
//        new TxtInputStream("C:/tmp/result.txt.zip");
//        new TxtInputStream("C:/tmp/result.txt");
//    }

}

level05.lesson05.task04

При компиляции в IDEA ошибок не показывает, но при проверке задачи пишет: «Программа не компилируется на сервере».
Насколько я понял необходимо ипортировать класс из первой задачи. Не пойму в чем проблема. Подскажите что делаю неправильно.

package com.javarush.test.level05.lesson05.task04;

/* Создать три объекта типа Cat
В методе main создать три объекта типа Cat и заполнить их данными.
Использовать класс Cat из первой задачи. Класс Cat создавать не надо.
*/

import com.javarush.test.level05.lesson05.task01.Cat;

public class Solution {

public static void main(String[] args) {
//add your code here
com.javarush.test.level05.lesson05.task01.Cat catA = new com.javarush.test.level05.lesson05.task01.Cat();
com.javarush.test.level05.lesson05.task01.Cat catB = new com.javarush.test.level05.lesson05.task01.Cat();
com.javarush.test.level05.lesson05.task01.Cat catC = new com.javarush.test.level05.lesson05.task01.Cat();

catA.name = «A»;
catA.weight = 8;
catA.strength = 5;
catA.age = 5;

catB.name = «B»;
catB.weight = 3;
catB.strength = 6;
catB.age = 7;

catC.name = «C»;
catC.weight = 6;
catC.strength = 3;
catC.age = 8;
}

public static class Cat {

public static int count = 0;
private String name;
private int age;
private int weight;
private int strength;

public Cat(String name, int age, int weight, int strength) {
count++;

this.name = name;
this.age = age;
this.weight = weight;
this.strength = strength;
}
}
}

level14.lesson08.home06;

Подскажите, может я не так понял условие конечно? Я так понял программа должна выводить список имен классов, которые совпадают с заявленными требованиями?

package com.javarush.test.level14.lesson08.home06;

/* MovieFactory
Расширение функционала по аналогии, чтение с консоли:
1. Разобраться, что программа умеет делать.
2. Все классы должны быть внутри класса Solution.
3. Добавить классы Cartoon, Triller.
4. Разобраться, как мы получаем объект класса SoapOpera по ключу «soapOpera».
Аналогично получению объекта SoapOpera сделать:
5. Добавить в MovieFactory.getMovie получение объекта Cartoon для ключа «cartoon».
6. Добавить в MovieFactory.getMovie получение объекта Triller для ключа «triller».

7. Считать с консоли несколько ключей (строк).
7.1. Ввод заканчивается, как только вводится строка не совпадающая с одной из: «cartoon», «triller», «soapOpera».
8. Создать переменную movie класса Movie и для каждой введенной строки(ключа):
8.1. Получить объект используя MovieFactory.getMovie и присвоить его переменной movie.
8.2. Вывести на экран movie.getClass().getSimpleName().
*/

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Solution
{
public static void main(String[] args) throws Exception
{
//ввести с консоли несколько ключей (строк), пункт 7
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList list = new ArrayList();

while (true){
String key = reader.readLine();
if (!key.equals(«soapOpera»)&&!key.equals(«Cartoon»)&&!key.equals(«Triller»)) break;
list.add(key);
}
for (String x: list){
System.out.println(MovieFactory.getMovie(x).getClass().getSimpleName());
}

/*
8 Создать переменную movie класса Movie и для каждой введенной строки(ключа):
8.1 получить объект используя MovieFactory.getMovie и присвоить его переменной movie
8.2 вывести на экран movie.getClass().getSimpleName()
*/

}

static class MovieFactory
{

static Movie getMovie(String key)
{
Movie movie = null;

//создание объекта SoapOpera (мыльная опера) для ключа «soapOpera»
if («soapOpera».equals(key))
{
movie = new SoapOpera();
}
if («Cartoon».equals(key))
{
movie = new Cartoon();
}
if («Triller».equals(key))
{
movie = new Triller();
}

//Напишите тут ваш код, пункты 5,6

return movie;
}
}

static abstract class Movie
{
}

static class SoapOpera extends Movie
{
}

static class Cartoon extends Movie{

}
static class Triller extends Movie{

}
}

С праздничком всех!!!

Программист, принимай поздравленья —
Поулыбчивей интерфейс,
Мы желаем тебе продвиженья
От ноля и до самых небес!
Пусть девчонка с дисплеем красивым
Мониторит с тобой до утра,
И процессор гудит на всю мощность –
Возвещают тосты юзера!