Priyanshu Patel Ответов: 1

Как я могу решить свою ошибку во время выполнения


Я застрял на реализации массива, где метод 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: операция завершена.



// Ожидаемый Результат


Введите навык: приготовление пищи
Введите навык: игра в кости
Введите навык: измельчение овощей
Джейми Оливер я шеф повар
Мои навыки таковы:
Приготовление еды
Игра в кости
Измельчение овощей
Введите навык: Приготовление десерта
Введите навык: кричать на людей
Гордон Рэмси я шеф повар
Мои навыки таковы:
Приготовление десерта
Кричать на людей

1 Ответов

Рейтинг:
2

Patrice T

Попробуйте заменить

for( i=0; i<s[i].length();> {

с
for( i=0; i<s.length();i++> {