English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
정적 변수-정적 변수는 클래스 변수라고도 합니다. 키워드를 사용하여 정적 변수를 선언할 수 있습니다. 정적 변수가 선언되면, 클래스에서 어떤 객체를 생성할지와 상관없이, 클래스에 단 하나의 복사본만 있습니다.
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 변수 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