[Java] Java에서 변수를 나타내는 용어 정리

seonwoo·2026년 1월 31일

Java

목록 보기
7/12

1. 변수란 무엇인가

변수(Variable)란
값을 저장하기 위해 이름을 붙인 메모리 공간이다.

[Java] 변수(Variable)

Java에서 변수는 단순히 값만 저장하는 게 아니라

  • 어디에 선언되었는지
  • 누구에게 소속되는지
  • 얼마 동안 살아 있는지

에 따라 서로 다른 규칙과 이름을 가진다.




2. Java에서 변수의 큰 분류

Java의 모든 변수는 아래 3가지 중 하나로 분류된다.

변수
 ├─ 필드 (Field)
 ├─ 지역 변수 (Local Variable)
 └─ 매개 변수 (Parameter)

2-1. 필드 (Field)

class User {
	// 인스턴트 필드 선언
	public Long id = 1;
    private String username;		// 초기화 하지 않으면 null
    protected String password;        
    String address; 
    
    // 정적(static) 필드 선언
    static int count;
}

필드(Field)는 클래스 내부에 존재하며 메서드 밖에서 선언된다.

필드에 선언되는 변수는
접근제어자[public, private, protected, default]를 사용할 수 있다.

클래스 영역에 선언되며 접근제어자 범위 내에서 클래스의 메서드들에서 사용 가능하다.
또한, 필드는 초기화하지 않으면 JVM이 객체 생성 시점에 기본값으로 초기화한다.

인스턴스 필드는 new 연산자를 통해 객체 생성 시 메모리에 생성되며
객체가 소멸할 때 함께 소멸한다.

하지만, static 필드는 클래스 로딩 시 메모리에 생성되며
프로그램 종료 시까지 유지된다.


2-2. 지역 변수 (Local Variable)

public void test() {
	// 지역 변수 선언
    int x = 10; 
    int y;
}

지역 변수(Local Variable)는 메서드 내부 또는 {} 블록 내부에서 선언된다.

지역 변수를 사용할 때는 다음과 같은 주의 사항이 있다.

  • 지역 변수는 사용하기 전 반드시 초기화를 해야한다.

    public void test() {
        int x;
    
        // 메서드 밖에서는 지역 변수 접근 불가 → 컴파일 에러
        System.out.println(x);
    }

  • 접근 제한자 사용 불가

      public void test() {
          private int x;	// 에러 발생
         
      }

  • 메서드, 생성자. 제어문 실행 시 메모리에 생성되고
    메서드, 생성자, 제어문이 종료 시 함께 소멸된다.

    class User {
        // 필드
    
        // 메서드
        public void test() {
            int x = 1;
        }
    
        // 에러 발생
        System.out.println(x);
    }

2-3. 매개 변수 (Parameter)

void test(int value) {}

매개 변수(Parameter)는 메서드 선언부에 선언하며 메서드 호출 시 값을 전달받는다.

매개 변수는 메서드 호출 시 값이 전달되므로 초기화가 불필요하며
메서드 내부에서만 사용이 가능하다.

매개 변수는 메서드 시그니처(Method Signature)에 포함된다.

메서드 시그니처(Method Signature)

메서드 이름 + 매개변수 타입 목록으로 구성된다.
반환 타입, 접근제어자, static은 포함하지 않는다.




3. 필드(Field) 세부 분류

3-1. 인스턴스 필드

class User {
	// 필드 선언
    String username;
}

인스턴스 필드(Instance Field)는 new 연산자를 통해 객체가 생성될 때
객체마다 각각 생성되는 변수이다.

주로 "인스턴스 변수"라고도 불린다.


3-2. static 필드

class User {
	// 정적 필드 선언
    static String company;
}

static 필드는 클래스가 JVM0에 로딩될 때 생성되며
객체 생성과 무관하게 클래스당 하나만 존재하고
해당 클래스의 모든 객체가 static 변수를 공유한다.

static 키워드를 사용하는 정적 필드는 다음 글에서 자세히 다룬다.

[Java] 정적(Static) 멤버 (정적 필드와 정적 메서드).




Cf). 멤버라는 표현은?

멤버(Member)는 클래스를 구성하는 요소 전체를 의미한다.

클래스 멤버
 ├
 ├────── 필드
 ├
 ├────── 메서드
 ├
 └────── 생성자

즉, 정리하면 다음과 같이 나타낼 수 있다

표현의미
멤버 변수필드
인스턴스 멤버인스턴스 필드 + 인스턴스 메서드
static 멤버static 필드 + static 메서드



profile
Github : https://github.com/melly8954

0개의 댓글