Как я могу решить свою ошибку во время выполнения
Я застрял на реализации массива, где метод createSkills () должен Создать Строковый массив размера n, предложить пользователю ввести каждый из навыков и прочитать введенные значения. Метод должен возвращать строковый массив, содержащий все навыки, введенные пользователем. А метод printSkills () должен вывести "мои навыки:" с каждым элементом параметра массива на своей собственной строке. Я думаю, что с моей стороны есть какая-то незначительная ошибка реализации массива.
Что я уже пробовал:
// Класс шеф-повара
импорт java. util.Сканер;
шеф-повар публичного класса расширяет навыки реализации личности
{
частный сканер а;
int i;
защищенный шеф-повар(строка f, строка l) {
супер (f, l);
}
@Ручная коррекция
public String toString()
{
String str= " я шеф-повар";
возвращение(ул.);
}
@Ручная коррекция
общественного недействительными принтинфо() {
Системы.из.код println ("супер".метод toString()+" "+шеф-повар.это.toString());
}
@Ручная коррекция
public String[] createSkills(int n) {
String[] arr = новая строка[n];
Клавиатура сканера = новый сканер(System.in);
Системы.из.код println("введите ваши навыки,\Н");
Строка s=клавиатура. следующая строка();
возвращение (ОБР);
}
@Ручная коррекция
public void printSkills(String[] s) {
//строки;
для( Я=0; я&Л;С[я].длина (); и GT; {
s[i]= a. следующая строка();
}
Системы.из.код println("мои навыки: /Н"+С[я]);
}
}
//класс person
открытый абстрактный класс Person
{
отдельный строке первый;
частная строка последняя;
защищенное лицо(строка f, строка l)
{
это.первый = Ф;
этот.последний = л;
}
абстрактный недействительным принтинфо();
public String toString()
{
вернуть (это.первый + "" +
это.последние);
}
}
//Интерфейс
навыки публичного интерфейса
{
public abstract String[] createSkills(int n);
public abstract void printSkills(String[] s);
}
//Основной класс
Skills1 открытый класс
{
публичный статический пустота главный (строка[] аргументы)
{
Шеф-повар c1 = новый шеф-повар ("Джейми", " Оливер");
Строка[] с = С1.createSkills(3);
Системы.из.код println();
С1.принтинфо();
Системы.из.код println();
С1.printSkills(а);
Системы.из.код println();
Шеф-повар c2 = новый шеф-повар ("Гордон", " Рэмси");
Строка[] б = С2.createSkills(2);
Системы.из.код println();
С2.принтинфо();
Системы.из.код println();
С2.printSkills(б);
}
}
//ошибка выполнения
----jgrasp exec: java Skills1
Введите свои навыки
приготовление еды
Джейми Оливер я шеф повар
Исключение в потоке "основной" Java для.яз.Исключение NullPointerException
на шеф-повара.printSkills(шеф-повар.Ява:42)
в Skills1.основной(Skills1.Ява:10)
----jGRASP wedge2: код выхода для процесса равен 1.
---- jGRASP: операция завершена.
// Ожидаемый Результат
Введите навык: приготовление пищи
Введите навык: игра в кости
Введите навык: измельчение овощей
Джейми Оливер я шеф повар
Мои навыки таковы:
Приготовление еды
Игра в кости
Измельчение овощей
Введите навык: Приготовление десерта
Введите навык: кричать на людей
Гордон Рэмси я шеф повар
Мои навыки таковы:
Приготовление десерта
Кричать на людей