0Pricing
Java Academy · 강의

범위 및 수명

변수가 어디에서 보이는지(범위), 얼마나 오래 존재하는지(수명)를 이해합니다. 블록, 반복문, 메서드, 필드, 이름 가리기와 final 매개변수를 다룹니다.

범위 및 수명은(는) CoddyKit의 무료 Java Academy 강의입니다. 이것은 3개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Java Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Java Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

범위와 수명 비교

범위는 이름(변수)을 사용할 수 있는 위치입니다. 수명은 변수가 존재하는 기간입니다. 블록 범위, 반복문 범위, 메서드 지역 변수, 클래스 필드, 이름 가리기 규칙을 살펴봅니다.

블록 범위

블록 범위: 중괄호 안에서 선언한 변수는 해당 중괄호 안에서만 사용할 수 있습니다.

public class Main {
  public static void main(String[] args) {
    int a = 10; // visible in main
    {
      int b = 20; // visible only inside this block
      System.out.println("inside block: a=" + a + ", b=" + b);
    }
    System.out.println("outside block: a=" + a);
    // System.out.println(b); // would NOT compile: b is out of scope
  }
}

반복문 범위

반복문 범위: for 헤더에서 선언한 반복문 인덱스는 반복문 본문 안에서만 사용할 수 있습니다.

public class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 3; i = i + 1) {
      System.out.println("i in loop = " + i);
    }
    // System.out.println(i); // would NOT compile: i is scoped to the loop

    int j;
    for (j = 0; j < 2; j = j + 1) {
      System.out.println("j in loop = " + j);
    }
    System.out.println("j after loop = " + j); // OK: j declared outside
  }
}

필드와 지역 변수

수명: 클래스 필드와 정적 필드는 호출 사이에도 유지되고, 지역 변수는 호출할 때마다 다시 만들어졌다가 메서드가 끝나면 폐기됩니다.

public class Main {
  // static field (class-level): lives for the program lifetime
  static int counter = 0;

  static void tick() {
    int local = 100; // local: created each call, dies when method returns
    counter = counter + 1;
    System.out.println("tick: counter=" + counter + ", local=" + local);
  }

  public static void main(String[] args) {
    tick();
    tick();
    tick();
    System.out.println("final counter=" + counter);
  }
}

이름 가리기

이름 가리기: 내부 선언(예: 매개변수나 지역 변수)은 같은 식별자를 가진 바깥쪽 이름을 가릴 수 있습니다. 숨겨진 필드에 접근하려면 ClassName.field를 사용하거나, 인스턴스 메서드에서는 this.field를 사용하십시오.

public class Main {
  static String label = "FIELD"; // class field

  static void demo(String label) { // parameter shadows field name
    System.out.println("param label = " + label); // uses parameter
    {
      String labelInner = "INNER"; // new name in inner block
      System.out.println("inner block labelInner = " + labelInner);
      System.out.println("still param label = " + label);
    }
    System.out.println("field via class name = " + Main.label); // refer to field explicitly
  }

  public static void main(String[] args) {
    demo("PARAM");
  }
}

최종 지정과 값에 의한 전달

최종 지정된 매개변수는 다시 대입할 수 없습니다. Java는 값에 의한 전달을 사용하므로, 매개변수를 다시 대입해도 호출자의 변수는 바뀌지 않습니다.

public class Main {
  // final parameter cannot be reassigned inside the method
  static int inc(final int n) {
    // n = n + 1; // would NOT compile if uncommented
    return n + 1; // safe: return a new value
  }

  static void reassign(int x) {
    x = 999; // reassignes the local copy; caller variable is unchanged
  }

  public static void main(String[] args) {
    int a = 5;
    int b = inc(a);
    System.out.println("a=" + a + ", b=inc(a)=" + b);

    reassign(a);
    System.out.println("after reassign(a): a is still " + a);
  }
}

범위와 수명 확인

빠른 확인: 범위와 수명에 관한 설명 중 TRUE인 것은 무엇입니까?

복습 및 다음 단계

복습: 블록과 반복문 범위, 필드와 지역 변수, 이름 가리기, 최종 지정 매개변수를 연습했습니다. 다음은 A2.2의 설계 및 재사용 패턴으로 넘어갑니다.

자주 묻는 질문

“범위 및 수명” 강의는 무료인가요?

네 — “범위 및 수명” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Java Academy 강의 전체를 잠금 해제할 수 있습니다. Java Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

“범위 및 수명”에서 뭘 배우나요?

변수가 어디에서 보이는지(범위), 얼마나 오래 존재하는지(수명)를 이해합니다. 블록, 반복문, 메서드, 필드, 이름 가리기와 final 매개변수를 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Java Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Java Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 3번째 강의입니다.

“범위 및 수명” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Java Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Java Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 메서드 및 매개변수 정의
  2. 반환값 및 오버로딩
  3. 범위 및 수명
← Java Academy(으)로 돌아가기