Ошибка имени в методе agecheck

1
import java.util.*;

public class newclass {
public static String name;     

static Scanner input = new Scanner(System.in);
public static void main(String[] args){

    newclass picname = new newclass();
    picname.namechecker();
    picname.agechecker();

}
public void namechecker(){
System.out.println("Please enter your name new user");
String name = input.nextLine();
System.out.println("Hello " + name + "!");

}
public void agechecker(){
System.out.println("What is your age " + name); 
int age = input.nextInt();
System.out.println("You're " + age + " years old");
}

}

Почему-то всякий раз, когда я ввожу свое имя. Java не вспомнит об этом в методе agechecker(). Я не знаю, почему это не будет, поскольку я использовал его как глобальную переменную. Может кто-нибудь, пожалуйста, объясните это мне. Заранее спасибо.

  • 0
    Краткий ответ: скрывается. Вы объявляете локальное name которое скрывает name в вашем классе. Пропустите объявления типов в ваших методах.
Теги:
methods

1 ответ

0
Лучший ответ

проблема:

вы вводите имя в namechecker() и назначаете его

String name = input.nextLine();

и вы ожидаете, что он будет установлен в статическом поле, называемом также именем

System.out.println("What is your age " + name); 

так что это будет null

решение:

грязный: назначить имя глобальной переменной
лучше: создать класс под названием Person и иметь его Object

  • 0
    Спасибо, ребята, я понял.
  • 0
    пожалуйста

Ещё вопросы

Сообщество Overcoder
Наверх
Меню