Java -Какая переменная экземпляра?

Мое назначение – создать программу с переменной экземпляра, String, которая должна быть введена пользователем. Но я даже не знаю, что такое переменная экземпляра. Что такое переменная экземпляра? Как его создать? Что оно делает?

Переменная экземпляра – это переменная, объявленная внутри classа, но вне метода: что-то вроде:

class IronMan{ /** These are all instance variables **/ public String realName; public String[] superPowers; public int age; /** Getters / setters here **/ } 

Теперь этот class IronMan может быть создан в другом classе для использования этих переменных, например:

 class Avengers{ public static void main(String[] a){ IronMan ironman = new IronMan(); ironman.realName = "Tony Stark"; // or ironman.setAge(30); } } 

Так мы используем переменные экземпляра. Бесстыдный штепсель: пример вытащил из этой бесплатной книги здесь .

Переменная экземпляра – это переменная, которая является членом экземпляра classа (т. Е. Связана с чем-то, созданным с new ), тогда как переменная classа является членом самого classа.

Каждый экземпляр classа будет иметь свою собственную копию переменной экземпляра, тогда как только одна из каждой статической (или classной) переменной связана с самим classом.

Разница между ними-а-classа переменной и-ан-экземпляр переменной

Этот тестовый class иллюстрирует разницу

 public class Test { public static String classVariable="I am associated with the class"; public String instanceVariable="I am associated with the instance"; public void setText(String string){ this.instanceVariable=string; } public static void setClassText(String string){ classVariable=string; } public static void main(String[] args) { Test test1=new Test(); Test test2=new Test(); //change test1's instance variable test1.setText("Changed"); System.out.println(test1.instanceVariable); //prints "Changed" //test2 is unaffected System.out.println(test2.instanceVariable);//prints "I am associated with the instance" //change class variable (associated with the class itself) Test.setClassText("Changed class text"); System.out.println(Test.classVariable);//prints "Changed class text" //can access static fields through an instance, but there still is only 1 //(not best practice to access static variables through instance) System.out.println(test1.classVariable);//prints "Changed class text" System.out.println(test2.classVariable);//prints "Changed class text" } } 
  • Начал ли JUnit4 поддерживать заказ теста? Это намеренно?
  • Преобразование String в KeyEvents
  • Более быстрые альтернативы отражению Java
  • Как использовать подстановочный шаблон в classpath для добавления нескольких банок?
  • Как обрабатывать загрузку файлов Windows с помощью Selenium WebDriver?
  • Компиляция java-программы в исполняемый файл
  • Почему Java-код с внутренним classом генерирует третий файл SomeClass $ 1.class?
  • Эффективное пересечение двух List в Java?
  • Java-эквиваленты C # String.Format () и String.Join ()
  • Подключение удаленного экземпляра tomcat JMX с помощью jConsole
  • Фильтры JFileChooser
  • Давайте будем гением компьютера.