переменная экземпляра == объект?

163
21 января 2020, 17:30
Test test1 = new Test(); 

test1 - это переменная экземпляра? Не могу понять что такое переменная экземпляра :(

Answer 1

test1 - это экземпляр класса(объект), экземпляр класса = объект, объект класса.

Пример создания экземпляра класса:

Test test1 = new Test(); // Т.е. , то, что вы и предложили

Переменные:

  • Локальные

    • Локальные переменные объявляются в методах, конструкторах или блоках. Блок - { ... }

    • Локальные переменные создаются, когда метод, конструктор или блок запускается и уничтожаются после того, как завершиться метод, конструктор или блок.

    • Модификаторы доступа нельзя использовать для локальных переменных.

    • Они являются видимыми только в пределах объявленного метода, конструктора или блока.

Пример:

public void age() { 
      //Локальная переменная в методе  
      int age = 0; 
      System.out.println("Возраст -  " + age); 
   }

  • Класса(или статические)

    • Переменные класса известны как статические переменные и объявляются при помощи ключевого слова “static ”, внутри класса, но не в методах и конструкторах.

    • Значение переменной может быть только одно, не смотря на то сколько было создано объектов.

    • Статические переменные часто используются в качестве констант. Константная переменная объявляется как final и static с модификатором доступа или public или private.
    • Константным переменным значение присваивается при объявлении и не изменятся на протяжение выполнения программы.
    • Статические переменные создаются в момент запуска программы и уничтожаются только при завершение работы программы.
    • Область видимости аналогична переменным экземпляра.
    • Переменные экземпляра имеют значение по умолчанию:

      • Для числовых типов = 0
      • Для Boolean = false
      • Для объектов = null
    • Для вызова статической переменной за пределами класса, необходимо использовать полное имя класса и имя переменной. Например: ObjectReference.VariableName.

Пример:

public class test{ 
   // Переменные класса 
   private static double salary; 
    
   public static int age; 
}

  • Экземпляра

    • Переменные экземпляра – объявляются в классе и доступны любому методу класса, так и снаружи класса.
    • Переменные экземпляра создаются в момент создания объекта при помощи ключевого слово “new”, а уничтожаются вместе с методом.
    • Переменные экземпляра обычно содержат значения на которые ссылаются более одного метода класса.
    • Переменным экземпляра могут быть назначены модификаторы доступа.
    • Переменные экземпляра предназначенные для использования внутри класса – обычно получают модификатор доступа private. В случаи необходимости передачи значения в подклассы, можно присвоить модификатор доступа protected.
    • Переменные экземпляра имеют значение по умолчанию:
      • Для числовых типов = 0
      • Для Boolean = false
      • Для объектов = null

Пример:

public class test{ 
 
    // Переменная экземпляра. 
   public String name; 
    
   // Переменная экземпляра. 
   private int age; 
 
  //... (Остальное упущено, конструкторы и т.д.) 
  }

Answer 2
class SomeClass {
    Test test1 = new Test(); // переменная экземпляра (instance variable)
    static Test test2 = new Test(); // переменная класса
    void someMethod() {
        Test test1 = new Test(); // локальная переменная
    }
}
Answer 3

new Test() - создаем объект (экземпляр класса Test)

Test test1 - переменная с типом Test, которая

  • может содержать сылку на конкретный объект (экземпляр)
  • значение null
  • либо быть не проинициализированной переменной (см. случай локальных переменных)

Test test1 = new Test(); - переменной test1 присвоили ссылку на объект

Переменная - не равно объект, это ссылка на объект.

Test test1 = new Test();
Test test2 = test1;

Здесь две переменные test1, test2 содержат ссылку на один и тот же объект.

Что такое переменная экземпляра - мне тоже не понятно. Нужно смотреть в контексте остального текста, где эта фраза встречается. Возможно это поле объекта, как предполагают в др ответах, а может быть просто кривой перевод.

READ ALSO
Как получить полный StackTrace

Как получить полный StackTrace

У меня в программе возникает ошибка, которая формирует stackTrace очень большой и с разными библиотекамиЕсли читать его сверху вниз, то можно...

169
Возникает ошибка OutOfMemoryError

Возникает ошибка OutOfMemoryError

Вот возникает следующая ошибка при выполнении программыКак мне ее избежать, помогите пожалуйста?

128
не создаются папки из java idea через mkdir()

не создаются папки из java idea через mkdir()

Создаю папки в среде с относительным путем:

189
gesturedetector прокрутка

gesturedetector прокрутка

мне нужно сделать действительно хорошую прокрутку для своего приложения на телефон, но никак не выходит достичь той отзывчивости, что необходимапример...

163