Классическая проблема c. Я думаю, что вы не изучили концепцию объема в Java.
class Planes{
String Name; //instance variable
int Number_of_Pylons;//instance variable
String Type;//instance variable
void EnterValues()
{
Scanner s=new Scanner(System.in);
System.out.println("NAME: ");
String Name=s.nextLine(); //local variable
System.out.println("PYLONS: ");
int Number_of_Pylons=s.nextInt(); //local variable
s.nextLine();
System.out.print("TYPE OF CRAFT: ");
String Type=s.nextLine(); //local variable
}
};
Я прокомментировал приведенный выше код о типе переменных, которые вы использовали. Поэтому, если вы напишите что-то вроде
String Name=s.nextLine();
, он просто присваивает значение вашей локальной переменной Name
, область действия которой находится внутри одной функции. Это ничего не назначает вашему объекту. Если вы хотите присвоить значения свойствам объекта, это должно быть сделано следующим образом:
this.Name=s.nextLine();
Когда вы указываете это this
, область действия - уровень экземпляра. Теперь ваше свойство объекта Name
имеет значение. Точно так же и для других. Вы можете исправить оставшееся и заставить его работать.
Кстати, используемые соглашения об именах, форматирование кода и т. Д. c., Похоже на модель .Net
. Ознакомьтесь с лучшими практиками в java кодировании - потому что здесь все сломано!.