Смотритель: hubert

com.javarush.test.level09.lesson08.task04/5

/* Перехват checked исключений
В методе processExceptions обработайте все checked исключения.
Нужно вывести на экран каждое возникшее checked исключение.
Можно использовать только один блок try…
*/

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

}

public static void processExceptions(Solution obj) {
obj.method1();
obj.method2();
obj.method3();
}

public void method1() throws IOException {
throw new IOException();
}

public void method2() throws NoSuchFieldException {
throw new NoSuchFieldException();
}

public void method3() throws RemoteException {
throw new RemoteException();
}
}

Не пойму никак, как решить. Получается обработать только одно исключение, а до остальных не доходит.
  • ,

level16.lesson13.home06

package com.javarush.test.level16.lesson13.home06;

/* Создание по образцу
Разберись, как работает программа.
По образу и подобию CountDownRunnable создай нить CountUpRunnable, которая выводит значения в нормальном порядке — от 1 до 5.
*/

level05.lesson05.task02

Не могу понять, вроде всё на месте, только что-то не так.

public class Cat
{
public String name;
public int age;
public int weight;
public int strength;
public Cat()
{
}
public static void main(String[] args)
{
Cat Cat1 = new Cat();
Cat1.name = «Cat1»;
Cat1.age = 4;
Cat1.weight = 5;
Cat1.strength = 8;
Cat anotherCat = new Cat();
anotherCat.name = «Cat2»;
anotherCat.age = 15;
anotherCat.weight = 20;
anotherCat.strength = 2;
Cat1.fight(anotherCat);
}
public boolean fight (Cat anotherCat)
{
return (Cat.strength < anotherCat.strength);
}
}

Подскажите, что читать внимательно, зачем нужен public Cat() (и что это вообще такое), и почему метод boolean не видит первого кота?
  • ,

Level16.lesson13.home03

Не могу пройти задание:

/* Рекурсивное создание нитей
1. Внутри класса Solution создай нить public static GenerateThread.
2. Создай конструктор GenerateThread, который должен:
2.1. Вызвать конструктор суперкласса с параметром String — номером созданной нити. Используй countCreatedThreads.
2.2. Запустить текущую нить.
2.3. Номер первой нити должен начинается с 1.
3. Переопредели метод toString, для этого внутри GenerateThread нажми Alt+Insert -> Override Methods. Начни печатать toString.
3.1. Метод toString должен возвращать № текущей нити и слово " created". Используй getName(). Пример: [8 created]
4. Пока количество созданных нитей меньше Solution.count метод run должен:
4.1. создать новую нить типа GenerateThread.
4.2. Вывести в консоль созданную в пункте 4.1. нить.
5. В итоге должно быть выведено в консоль 15 строк.
*/

Код:

public class Solution {
    static int count = 15;
    static volatile int countCreatedThreads;

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

    public static class GenerateThread extends Thread {
        public GenerateThread()
        {
            super( String.valueOf( ++countCreatedThreads ) );
            run();
        }

        @Override
        public void run()
        {
            while ( countCreatedThreads < Solution.count )
            {
                System.out.println( new GenerateThread() );
            }
        }

        @Override
        public String toString()
        {
            return getName() + " created";
        }


    }
}

Результат работы кода:
15 created
14 created
13 created
12 created
11 created
10 created
9 created
8 created
7 created
6 created
5 created
4 created
3 created
2 created
1 created

Тест не проходит. Подскажите куда копать?..
  • ,

level07.lesson09.task04

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

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

/* Буква «р» и буква «л»
1. Создай список слов, заполни его самостоятельно.
2. Метод fix должен:
2.1. удалять из списка строк все слова, содержащие букву «р»
2.2. удваивать все слова содержащие букву «л».
2.3. если слово содержит и букву «р» и букву «л», то оставить это слово без изменений.
Пример:
роза
лира
лоза
Выходные данные:
лира
лоза
лоза
*/

public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader bis = new BufferedReader(new InputStreamReader(System.in));

ArrayList(String) list = new ArrayList(String)();
list.add(«роза»); //0
list.add(«лира»); //1
list.add(«лоза»); //2
list.add(«лор»);
list.add(«лом»);
list.add(«ром»);
list = fix(list);

for (String s: list)
{
System.out.println(s);
}
}

public static ArrayList ( String ) fix(ArrayList(String) list) {
for(int i = 0; i < list.size(); )
{
if(list.get(i).contains(«р») && list.get(i).contains(«л»))
i++;
else
{
if (list.get(i).contains(«л»))
{
list.add(i, list.get(i));
i += 2;
}
else
{
if (list.get(i).contains(«р»))
list.remove(i);
}
}
}
return list;
}
}

Программа работает, но проверку не проходит
  • ,

level18.lesson08.task05;

Не ясно само задание:
package com.javarush.test.level18.lesson08.task05;

import java.util.List;

/* Таблица
Измените класс TableInterfaceWrapper так, чтобы он стал Wrapper-ом для ATableInterface.
Метод setModel должен вывести в консоль количество элементов в новом листе перед обновлением модели
Метод getHeaderText должен возвращать текст в верхнем регистре — используйте метод toUpperCase()
*/
Моя логика выполнения такова:
Наследуемся от интерфейса.(Хотя непонятно зачем интерфейсу класс обертка)
Переопределяем методы: с верхним регистром вроде все понятно, а вот с «Метод setModel должен вывести в консоль количество элементов в новом листе перед обновлением модели» размер листа как вывести понятно, а что за обновление модели непонятно(также не ясно в какую сторону копать). Подскажите пожалуйста.
  • ,

level07.lesson09.task05

Нид хэлп, господа!
Задание:
/* Удвой слова
1. Введи с клавиатуры 10 слов в список строк.
2. Метод doubleValues должен удваивать слова по принципу a,b,c -> a,a,b,b,c,c.
3. Используя цикл for выведи результат на экран, каждое значение с новой строки.
*/
Мой код:
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 < 10; i++)
        {
            list.add(reader.readLine());
        }
        ArrayList<String> result = doubleValues(list);
        for (int i = 0; i < 20; i++)
        {
            System.out.println(result.get(i));
        }
    }
    public static ArrayList<String> doubleValues(ArrayList<String> list) {
        for (int i = 0; i < 19; i++){
            list.add(i, list.get(i));
            i++;
        }
        return list;
    }
}

Внимание, вопрос: почему не проходит тестирование?
  • ,

level06.lesson11.home05

package com.javarush.test.level06.lesson11.home05;

/* Есть новые идеи? Подумаем…
1. В классе Solution создать public статический класс Idea
2. В классе Idea создать метод public String getDescription(), который будет возвращать любой непустой текст
3. В классе Solution создайте статический метод public void printIdea(Idea idea), который будет выводить
на экран описание идеи — это то, что возвращает метод getDescription
*/

public class Solution
{
public static void printIdea(Idea idea)
{
String s = idea.toString();
// Idea.getDescription(s);
System.out.println(Idea.getDescription(s));
}

public static void main(String[] args)
{
printIdea(new Idea());
}

public static class Idea
{

public static String getDescription(String s)
{
if (s.length() > 0)
return s;
else
return null;
}
}
}

Не могу понять в где ошибка((