Java

[Java] 변수의 스코프(Scope)

아몬드맛빼빼로 2024. 4. 22. 23:14
반응형

스코프(Scope)란?


정말 간단히 말한다면 변수의 사용범위를 뜻한다.C언어에선 전역변수와 지역변수에 해당한다.

예시코드


    public class ValableScopeExam{

        int globalScope = 10;

        public void scopeTest(int value){   
            int localScope = 10;
            System.out.println(globalScope);
            System.out.println(localScpe);
            System.out.println(value);
        }
    }

다음 코드에서 보듯 'globalScope'변수는 메서드 밖에서 선언했고 'localScpe'변수와 'value'변수는 메서드 안에서 선언되었다.

public class VariableScopeExam {
        int globalScope = 10; 

        public void scopeTest(int value){
            int localScope = 20;            
            System.out.println(globalScope);
            System.out.println(localScope);
            System.out.println(value);
        }   
        void scopeStudy(String[] args) {
            System.out.println(globalScope);
            System.out.println(localScope);
            System.out.println(value);    
        }   
    }

위 코드를 조금 더 늘린 코드인데 'scopeStudy'메서드 부터 실행이 되고 끝난다고 가정하면.실행 결과는 다음과 같다

10

'System.out.println(globalScope);'가 실행이 된 후 오류가 발생하는데 이는 'globalScope'변수는 앞서 살펴보았듯이 클래스 전역에서 사용가능한 변수이지만 나머지 변수들은 'scopeTest'매서드 내에서 선언하고 그 안에서만 사용할 수 있다.이 변수가 사용가능한 범위를 스코프(Scope)라 한다.

알아야 하는 이유?


당연하지만 프로그래머로써 기본 이론과 개념은 알아야한다,또한 특히 자바와 같은 객체 지향 언어는 변수의 사용범위가 굉장히 중요하고 보통은 연달아서 바로 배우는 정적(static) 개념과 직결되기 때문에 매우 중요하고 알아야한다.

'Java' 카테고리의 다른 글

[Java] JavaDoc  (0) 2025.05.05
[Java] StableValue!  (0) 2025.04.07
[Java] Logging  (0) 2025.03.11
[Java] Ehcache  (1) 2024.12.05
[Java] for each문  (0) 2024.04.17