Думал задачу не решил, а она прошла, хотя в идее выскакивала ошибка, но компилятор пропустил
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.ArithmeticException: / by zero
at com.javarush.task.task15.task1517.Solution.<clinit>(Solution.java:11)
Process finished with exit code 1
Вопрос в том что непонятно вот что "если параметр равен "plane", считать второй параметр типа int (количество пассажиров), статическому объекту CanFly result присвоить объект класса Plane."
Считать второй параметр типа int - это как понимать? С консоли считать или что?
А вот задача сама =>
1.Solution =>
package com.javarush.task.task15.task1529;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Осваивание статического блока
*/
public class Solution {
public static void main(String[] args) {
}
static {
try {
reset();
} catch (IOException e) {
e.printStackTrace();
}
}
public static CanFly result;
public static void reset() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
if (s.equals("helicopter")){
result = new Helicopter();
}
else if(s.equals("plane")){
result = new Plane();
}
reader.close();
}
}
2.Plane =>
package com.javarush.task.task15.task1529;
public class Plane implements CanFly{
public int amountOfPassengers;
public Plane(int amountOfPassengers){
this.amountOfPassengers = amountOfPassengers;
}
public Plane() {
}
@Override
public void fly() {
}
}
3.Hellicopter =>
package com.javarush.task.task15.task1529;
public class Helicopter implements CanFly{
@Override
public void fly() {
}
}
Alikhan
20 уровень
Вопрос
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
smart_engineer
31 августа 2021, 20:46
Считать второй параметр типа int - это как понимать? С консоли считать или что?
Именно. Нужно считать с консоли =)
У тебя в классе Plane два конструктора - один по заданию, второй с пустыми параметрами - его быть не должно. И без него ничего бы не скомпилировалось скорее всего.
Алгоритм такой:
1. вводим строку в консоль.
2а. если строка не совпадает с ключевым словом - не происходит ничего. программа завершается.
2б. если введено слово helicopter - создается объект Helicopter.
2в. если введено слово plane - программа ждет когда введут новую строку в консоль.
3. вводим новую строку - программа пытается преобразовать ее в тип int, и если это удается создается объект Plane(int "кол-во пассажиров")
Так как в третьем пункте может не получиться преобразовать строку в int надо пробрасывать или отлавливать исключения. Лично я эту тему не совсем понял и по этому использую только трай-катч =)
0
Святослав
20 августа 2021, 14:27
В условии написано:
если параметр равен "plane", считать второй параметр типа int (количество пассажиров), статическому объекту CanFly result присвоить объект класса Plane.
0
Alikhan
21 августа 2021, 11:15
Спасибо, но по моему вы просто скопировали то что я написал..
0
bazhukovsi_second
20 августа 2021, 11:38
Такое впечатление, что у нас задачи разные. У меня просто создается конструктор с количеством пассажиров. Поэтому количество пассажиров я не читаю с консоли.
0
Alikhan
21 августа 2021, 11:15
И вправду..
0
Mikh Bear
20 августа 2021, 09:22
если вы с консоли считали параметр plane, то для него так же в консоли нужно запросить дополнительно количество пассажиров.
0
Alikhan
20 августа 2021, 09:39
В условии было написано считать с консоли параметр типа String, но никак не плейн или же хеликоптер
0