Java 변수

임유진·2025년 7월 3일

Java

목록 보기
5/12

🧩 데이터 타입에 따른 분류 따른 분류

Java의 데이터 타입은 크게 기본 타입객체 타입으로 나뉩니다.

📝 기본 타입 (primitive type)

Java에서 제공하는 8가지 내장 타입입니다.

구분타입 목록비트 크기
정수형byte, short, int, long8, 16, 32, 64bit
문자형char16bit
실수형float, double32, 64bit
논리형boolean8bit

📝 객체 타입 (non-primitive type)

  • API(library)에서 제공하거나 사용자가 정의한 타입

  • 반드시 class 또는 interface로 정의

  • 예시

    • String: JDK 내부 제공

    • Person: 사용자 정의 타입

      사용자 정의 클래스 예시
      ```java
      // 사용자 정의 클래스
      class Person {
          String name;
          int age;
      
          // age 값 수정 메서드
          void setAge(int age) { // 매개 변수 = 로컬 변수
              String tempName; // 로컬 변수
              this.age = age;  // 멤버 변수에 값 대입
          }
      }
      
      public class TypeLab {
          public static void main(String[] args) {
              // Person 인스턴스 생성
              Person p1 = new Person();
              p1.name = "김자바";
              p1.age = 10;
      
              // 메서드로 age 값 수정
              p1.setAge(4);
              System.out.println(p1.age);
          }
      }
      ```
      
      </details>

🏷️ 선언 위치에 따른 변수 구분

변수는 선언 위치에 따라 크게 멤버 변수(필드)지역 변수로 나뉩니다.

🧩 멤버 변수 (필드)

클래스 영역에 선언됩니다.

📝 클래스 변수 (static 변수)

  • 선언: static 키워드를 붙임

  • 특징:

    • 클래스가 메모리에 로딩될 때 생성
    • 인스턴스 생성 없이 클래스명.변수명으로 접근 가능
    • 모든 인스턴스가 동일 값을 공유
    • public으로 선언 시 전역 변수 역할

📝 인스턴스 변수

  • 선언: 클래스 영역에 static 없이 선언

  • 특징:

    • 인스턴스 생성 시 할당

    • 인스턴스마다 고유의 값 보유

    • 참조 방식:

      • 참조 변수 선언: 클래스명 변수명;
      • 인스턴스 생성 및 참조: 변수명 = new 클래스명();
  • 예시 코드:

    // Tv 클래스 타입의 참조 변수 선언
    Tv t;
    
    // Tv 인스턴스 생성
    t = new Tv();
  • 생성 시 멤버 변수는 기본값으로 초기화

    • int: 0
    • boolean: false
    • 참조형: null

🧩 지역 변수

메서드 내부에 선언됩니다.

  • 메서드 실행 시 생성되고 종료 시 소멸
  • 매개 변수도 지역 변수의 일종
  • 메서드 호출 시 인자값이 매개 변수에 복사되어 전달

변수 생성 시점 요약

변수 종류선언 위치생성 시점
클래스 변수클래스 영역클래스 로딩 시
인스턴스 변수클래스 영역인스턴스 생성 시
지역 변수메서드, 생성자, 초기화 블럭 내부변수 선언문 실행 시
public class Test {
    int iv;             // 인스턴스 변수
    static int cv;      // 클래스 변수

    public void method() {
        int lv;         // 지역 변수
    }

    public void makeSum(int startVal, int endVal) { // 매개 변수
    }
}

📚 참고자료

profile
말하는 고구마

0개의 댓글