Виды переменных

153
24 июня 2021, 19:50
  1. Если переменная объявлена в теле класса и является static - значит это переменная класса

  2. Если переменная объявлена в теле класса и не является static - то это переменная объекта класса

  3. Если переменная объявлена в теле метода - то это локальная переменная

Теперь вопрос:

Как называется переменная которая находится в {} и как называется переменная в static{}? Оба, в смысле {} и static{} находятся в теле класса.

Вот, к примеру:

abstract class AnyName{
    {int k;}
    static{int k;}
}

Дополнительно: не разрешается объявлять переменные в таких скобках ключевым словом static.

Answer 1

Во-первых, неинициализированные переменные компилятор просто выкинет из результирующего модуля. Поэтому стоит как минимум присвоить им хоть какие-то значения.

public class Example {
    static { int a = 1; }
    { int b = 2; }
    public static void main(String[] args) {  }
}

Во-вторых, все инструкции из нестатического блока инициализации будут просто перенесены в конструктор по умолчанию, а инструкции из статического блока инициализации будут перенесены в специальный метод <clinit>. Так что переменная a станет локальной переменной конструктора по умолчанию, а переменная b локальной переменной метода <clinit>.

public class Example {
  public Example();           // Конструктор по умолчанию
    Code:
       0: aload_0
       1: invokespecial #1    // Method java/lang/Object."<init>":()V
       4: iconst_2
       5: istore_1            // Переменная b
       6: return
  public static void main(java.lang.String[]);
    Code:
       0: return
  static {};                  // Статический инициализатор
    Code:
       0: iconst_1 
       1: istore_0            // Переменная a
       2: return 
}
READ ALSO
Выбор технологии для обработки данных клиент-серверной платформы

Выбор технологии для обработки данных клиент-серверной платформы

Нужен совет, какую выбрать технологию взаимодействий клиент-серверной среды, для обработки и получения данных? Например SOAP или RESTful

149
Расчет количества простых чисел в интервале

Расчет количества простых чисел в интервале

Задание - посчитать количество простых чисел от 2 до х, используя вложенный цикл for + forПомогите доработать код, тест-методы со значениями finish...

148
статический импорт

статический импорт

решил немного побаловаться статическим импортом, в смысле немного поэкспериментировать

206
Биометрическая авторизация

Биометрическая авторизация

1) Возможно ли обойтись без диалога? У нас своеобразный дизайн под данную авторизацию2) Как можно настроить стиль для данного диалога? Цвет...

227