Java 키워드 필수 시리즈에 다시 오신 것을 환영합니다! 이 게시물은 동일한 클래스의 여러 객체 간에 데이터를 공유할 수 있게 해주는 Java의 강력한 기능인 정적 변수에 관한 것입니다.
실습 예제와 통찰력을 통해 정적 변수의 목적, 동작, 주요 사용 사례를 살펴보겠습니다. 너무 많은 콘텐츠로 인해 부담을 느끼지 않도록 별도의 게시물에서 정적 방법에 대해 자세히 알아보겠습니다.
이 게시물은 이전 게시물에서 논의한 개념을 바탕으로 작성되었습니다. 여기서 다루는 주제를 더 깊이 이해하려면 최종 키워드 및 정적 블록을 검토하는 것이 좋습니다.
정적 변수는 개별 인스턴스가 아닌 클래스에 속합니다. 이는 클래스의 모든 개체에서 공유되며 이러한 개체 전체에서 동일한 값을 유지합니다.
package keywords.static_keyword; public class StaticVariables { // Static variable: Shared across all instances of the class // Automatically initialized to default value on class loading static int idCounter; // int default value -> 0 // Static final variables // Must be initialized at declaration or in a static block static final String COMPANY_NAME = "TechCorp"; static final String OFFICE_CODE; // Instance variables: Unique to each object int employeeId; String employeeName; // Static final variable Initialized in a static block static { // Default region: US String region = System.getProperty("user.region", "US"); switch (region) { case "EU": regionalOfficeCode = "EU-01"; break; case "APAC": regionalOfficeCode = "AP-11"; break; default: regionalOfficeCode = "US-00"; } System.out.println("Static Block Invoked: Office Code set to " + regionalOfficeCode); } // Constructor: Assigns a unique ID to each object public StaticVariables(String name) { this.employeeName = name; this.employeeId = ++idCounter; // Incrementing the shared counter } // Instance method // Displays instance details along with shared data(static variables) void displayEmployeeDetails() { System.out.println("Employee ID: " + employeeId + ", Name: " + employeeName + ", Company: " + COMPANY_NAME + ", Office Code: " + OFFICE_CODE); } public static void main(String[] args) { // Creating instances to observe static variable behavior StaticVariables emp1 = new StaticVariables("Alice"); StaticVariables emp2 = new StaticVariables("Bob"); emp1.displayEmployeeDetails(); emp2.displayEmployeeDetails(); // Accessing the static variable directly using the class name System.out.println("Total Employees: " + StaticVariables.idCounter); } }
Static Block Invoked: Office Code set to US-00 Employee ID: 1, Name: Alice, Company: TechCorp, Office Code: US-00 Employee ID: 2, Name: Bob, Company: TechCorp, Office Code: US-00 Total Employees: 2
정적 변수:
정적 최종 변수:
정적 블록:
인스턴스 변수 및 메소드:
정적 변수에 대한 클래스 수준 액세스:
package keywords.static_keyword; public class StaticVariables { // Static variable: Shared across all instances of the class // Automatically initialized to default value on class loading static int idCounter; // int default value -> 0 // Static final variables // Must be initialized at declaration or in a static block static final String COMPANY_NAME = "TechCorp"; static final String OFFICE_CODE; // Instance variables: Unique to each object int employeeId; String employeeName; // Static final variable Initialized in a static block static { // Default region: US String region = System.getProperty("user.region", "US"); switch (region) { case "EU": regionalOfficeCode = "EU-01"; break; case "APAC": regionalOfficeCode = "AP-11"; break; default: regionalOfficeCode = "US-00"; } System.out.println("Static Block Invoked: Office Code set to " + regionalOfficeCode); } // Constructor: Assigns a unique ID to each object public StaticVariables(String name) { this.employeeName = name; this.employeeId = ++idCounter; // Incrementing the shared counter } // Instance method // Displays instance details along with shared data(static variables) void displayEmployeeDetails() { System.out.println("Employee ID: " + employeeId + ", Name: " + employeeName + ", Company: " + COMPANY_NAME + ", Office Code: " + OFFICE_CODE); } public static void main(String[] args) { // Creating instances to observe static variable behavior StaticVariables emp1 = new StaticVariables("Alice"); StaticVariables emp2 = new StaticVariables("Bob"); emp1.displayEmployeeDetails(); emp2.displayEmployeeDetails(); // Accessing the static variable directly using the class name System.out.println("Total Employees: " + StaticVariables.idCounter); } }
이번 게시물에서는 인스턴스 전체에서 상태 공유를 가능하게 하는 기본 기능인 정적 변수를 살펴보았습니다. 정적 변수를 이해하면 특히 여러 개체에서 일관성을 유지해야 하는 데이터를 관리할 때 더 효율적인 코드를 작성하는 데 도움이 됩니다.
다음 게시물에서는 정적 메서드에 대해 자세히 알아보고 해당 동작, 제한 사항 및 모범 사례를 살펴보겠습니다.
Java 기초
어레이 인터뷰 필수
Java 메모리 필수
컬렉션 프레임워크 필수
즐거운 코딩하세요!
위 내용은 정적 키워드: Java에서 정적 변수 디코딩의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!