English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Что такое пустой конечный переменный? Что такое статический пустой конечный переменный в Java?

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

public static int num = 39;

Переменные-экземпляры-Эти переменные都属于 экземпляру класса (объекту). Эти в классе, но вне методов. Эти инициализируются при инстанцировании класса. Их можно получить из любого метода, конструктора или блока конкретного класса.

Вы должны использовать объект для доступа к переменным-экземплярам. То есть, чтобы получить доступ к переменным-экземплярам, вам нужно создать объект класса и использовать этот объект, чтобы получить доступ к этим переменным.

final-После объявления переменной final вы не сможете ей переассигновать значение.

пустые переменные

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

Однако, если вы пытаетесь использовать пустые переменные в коде, это генерирует компиляционную ошибку.

Пример

В следующем Java-программе класс Student содержит два конечных переменных name и age, и они еще не инициализированы.

public class Student {
   public final String name;
   public final int age;
   public void display() {
      System.out.println("Имя студента: " + this.name);
      System.out.println("Возраст студента: " + this.age);
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

Ошибка компиляции

При компиляции программа выдает следующие ошибки:

Student.java:3: ошибка: переменная name не инициализирована в конструкторе по умолчанию
   private final String name;
                        ^
Student.java:4: ошибка: переменная age не инициализирована в конструкторе по умолчанию
   private final int age;
                     ^
2 ошибок

Решение:

Чтобы решить эту проблему, вам нужно инициализировать объявленные конечные переменные следующим образом:

public class Student {
   public final String name;
   public final int age;
   public Student() {
      this.name = "Raju";
      this.age = 20;
   }
   public void display() {
      System.out.println("Имя студента: " + this.name);
      System.out.println("Возраст студента: " + this.age);
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

результат вывода

Имя студента: Raju
Возраст студента: 20

Конечные пустые статические переменные

Так же, если вы объявите статическую переменную final без инициализации, она будет рассматриваться как конечная статическая переменная.

Когда переменная объявлена как статическая и конечная, вы можете инициализировать ее только в статическом блоке. Если вы пытаетесь инициализировать ее в другом месте, компилятор предположит, что вы пытаетесь присвоить значение, уже присвоенное переменной, и сгенерирует ошибку компиляции:

Пример

class Data{
   static final int num;
   Data(int i){
      num = i;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("worth of the constant: " + Data.num);
   }
}

Ошибка компиляции

ConstantsExample.java:4: ошибка: cannot assign a value to final variable num
   num = i;
   ^
1 ошибка

Пример

Таким образом, конечную статическую переменную необходимо инициализировать в статическом блоке.

Чтобы сделать вышеупомянутый код рабочим, вам нужно�始化 конечную статическую переменную в статическом блоке, например:

class Data{
   static final int num;
   static{
      num = 1000;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("worth of the constant: " + Data.num);
   }
}

результат вывода

worth of the constant: 1000
Основной учебник
Рекомендуется для просмотра