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("Name of the Student: ");+this.name);
      System.out.println("학생의 나이: ")}}+this.age);
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

컴파일 시 오류

컴파일 시, 이 프로그램은 다음과 같은 오류를 발생시킵니다.

Student.java:3: error: variable name not initialized in the default constructor
   private final String name;
                        ^
Student.java:4: error: variable age not initialized in the default constructor
   private final int age;
                     ^
2 errors

해결

해결하기 위해, 선언된 최종 변수를 초기화해야 합니다.-

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("Name of the Student: ");+this.name );
      System.out.println("학생의 나이: ")}}+this.age );
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

출력 결과

학생의 이름: Raju
학생의 나이: 20

static 빈 최종 변수

똑같이, static 변수 final을 선언했으나 초기화하지 않으면 그것을 static 최종 변수로 간주합니다.

변수가 static 변수와 final 변수로 선언되었을 때, static 블록에서만 초기화할 수 있습니다. 다른 위치에서 초기화를 시도하면 컴파일러는 값을 다시 할당하려고 생각하여 컴파일 시 오류를 발생시킵니다.-

예제

class Data{
   static final int num;
   Data(int i){
      num = i;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("고정 상수의 값: ");+Data.num);
   }
}

컴파일 시 오류

ConstantsExample.java:4: 에러: final 변수 num에 값을 할당할 수 없습니다
   num = i;
   ^
1 에러

예제

따라서, 최종 static 변수는 static 블록에서 초기화되어야 합니다.

위의 프로그램이 정상적으로 작동하려면, 최종 static 변수를 static 블록에서 초기화해야 합니다.-

class Data{
   static final int num;
   static{
      num = 1000;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("고정 상수의 값: ");+Data.num);
   }
}

출력 결과

고정 상수의 값: 1000
당신이 좋아할 수 있는