BEER&DEV

자바의 전역 변수(Global Variable): 초보자를 위한 꼬리의 꼬리를 무는 자바 본문

BASIS/JAVA

자바의 전역 변수(Global Variable): 초보자를 위한 꼬리의 꼬리를 무는 자바

사당맥주 2023. 7. 13. 12:54

자바에서 전역 변수(Global Variable)는 클래스 내부에서 선언되지 않고, 클래스 외부에 선언된 변수를 의미합니다. 전역 변수는 해당 클래스의 모든 메소드에서 접근 가능하며, 프로그램의 어느 곳에서나 사용할 수 있습니다. 이번 글에서는 초보자를 위해 자바의 전역 변수에 대해 예시와 함께 자세히 설명하겠습니다.

1. 전역 변수의 선언과 사용


전역 변수는 클래스 외부에 선언되며, 클래스 내부의 모든 메소드에서 접근할 수 있습니다. 전역 변수는 클래스 멤버 변수로 선언되어야 합니다.

예를 들어, 다음과 같이 전역 변수를 선언할 수 있습니다:

public class MyClass {
    public int globalVariable;
    
    // ...
}



위의 예시에서 `globalVariable`은 `MyClass` 클래스의 전역 변수로 선언되었습니다. 이 변수는 해당 클래스의 모든 메소드에서 접근 가능합니다.

2. 전역 변수의 활용 예시


- 데이터 공유: 전역 변수는 여러 메소드에서 동일한 데이터를 공유할 수 있습니다. 이를 통해 데이터의 일관성을 유지하고, 각 메소드에서 동일한 값을 사용할 수 있습니다.

public class Calculator {
    public int result;
    
    public void add(int a, int b) {
        result = a + b;
    }
    
    public void multiply(int a) {
        result = result * a;
    }
    
    public void printResult() {
        System.out.println("Result: " + result);
    }
}



위의 예시에서 `result`는 `Calculator` 클래스의 전역 변수로 선언되었습니다. `add()` 메소드는 인자로 전달받은 두 수를 더한 값을 `result`에 저장하고, `multiply()` 메소드는 인자로 전달받은 수와 `result`를 곱하여 다시 `result`에 저장합니다. `printResult()` 메소드는 `result`의 값을 출력합니다. 이때 `result` 전역 변수를 통해 각 메소드가 동일한 데이터를 공유하고 사용합니다.

- 상태 유지: 전역 변수는 객체의 상태를 유지할 때 유용합니다. 객체의 여러 메소드에서 동일한 상태 정보를 사용해야 할 때, 전역 변수를 활용하여 객체의 상태를 유지할 수 있습니다.

public class Counter {
    public static int count;
    
    public void increment() {
        count++;
    }
    
    public void decrement() {
        count--;
    }
    
    public void printCount() {
        System.out.println("Count: " + count);
    }
}



위의 예시에서 `count`는 `Counter` 클래스의 전역 변수로 선언되었습니다. `increment()` 메소드는 `count` 값을 1씩 증가시키고, `decrement()` 메소드는 `count` 값을 1씩 감소시킵니다. `printCount()` 메소드는 `count`의 값을 출력합니다. 이때 `count` 전역 변수를 통해 객체의 상태를 유지하고 갱신합니다.

3. 전역 변수의 사용에 주의할 점


- 상태 변동성: 전역 변수를 사용하면 상태 변동성 문제가 발생할 수 있습니다. 여러 메소드에서 동시에 전역 변수에 접근하여 값을 변경할 경우, 의도하지 않은 결과가 발생할 수 있습니다. 이를 방지하기 위해 스레드 동기화나 상호 배제 등의 방법을 사용해야 합니다.

- 의존성: 전역 변수는 다른 클래스나 메소드들과의 의존성을 증가시킬 수 있습니다. 전역 변수의 변경이 다른 부분에 영향을 줄 수 있으며, 이는 코드의 이해와 유지보수를 어렵게 할 수 있습니다. 따라서 전역 변수의 사용은 신중하게 고려되어야 합니다.

정리하자면, 자바의 전역 변수는 클래스 외부에 선언된 변수로, 클래스 내부의 모든 메소드에서 접근 가능합니다. 전역 변수를 사용하여 데이터 공유와 객체의 상태 유지를 할 수 있습니다. 하지만 전역 변수의 사용에는 주의해야 하며, 상태 변동성과 의존성 문제에 유의해야 합니다.

반응형