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(). Я не знаю, почему это не будет, поскольку я использовал его как глобальную переменную. Может кто-нибудь, пожалуйста, объясните это мне. Заранее спасибо.
проблема:
вы вводите имя в namechecker()
и назначаете его
String name = input.nextLine();
и вы ожидаете, что он будет установлен в статическом поле, называемом также именем
System.out.println("What is your age " + name);
так что это будет null
решение:
грязный: назначить имя глобальной переменной
лучше: создать класс под названием Person
и иметь его Object
name
которое скрываетname
в вашем классе. Пропустите объявления типов в ваших методах.