✔ 유효범위 = scope (아래 Document 참고)
https://www.w3schools.com/java/java_scope.asp
Java Scope
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
🟥용어정리🟥
지역변수 (Local variable)
지역 변수란 '블록' 내에서 선언된 변수를 의미함.
지역 변수는 변수가 선언된 블록 내에서만 유효하고 블록이 종료되면 메모리에서 사라짐.
지역 변수는 메모리상의 스택(stack) 영역에 저장됨.
전역변수 (Global variable)
함수의 외부에서 선언된 변수임.
프로그램의 어디에서나 접근이 가능하고, 프로그램이 종료되야 비로소 메모리에서 사라짐.
유효범위 (Scope)
변수를 선언했을 때, 그 변수가 접근이 가능한 범위.
아래 예시에 적어 놓은 주석들을 하나하나 읽어보면서
주석처리를 풀어보고 실행시켜보면 이해가 금방 될것이다!
Tip ✔
아래 코드를 모두 복사 혹은 다운로드 → IDE 에 붙여넣기 한 다음,
실행해보고 이리저리 코드를 수정해가면서
에러가 뜨면, 왜 에러가 뜨는지 직접 몸소 체험을 해봐야 경험치가 쌓입니다!
이것마저 못하는 게으름뱅이는 코딩 ㄹㅇ 접어야함 ㅅㄱ
아래 댓글창에 질문 언제든지 해주세요!
(시간되는 대로 답변해드리겠습니다)
public class ScopeDemo4 {
static void a() {
int i = 10;
b();
}
static void b() {
// System.out.println(i);
// b() method 안에 local variable i 도 없고,
// global variable i (static int i;)도 없으니까
// a() method 안에 있는 int i = 10; 가 출력될것 같지만,
// 사실상 에러가 난다!!
// 그 말은 즉, 1순위 지역변수(local variable) / 2순위 전역변수(global variable) 없으면
// 그 사이에 어떤 i 값이 정의 됐던 간에 에러!!
// => 이런 형태의 유효범위 스타일을 정적인 유효범위!(Static Scope = Lexical Scope)
// 정적 -> 정해진 범위내(local variable / global variable)에서만 찾는다!
// 만약 다른 언어에서
// 다른 method a()가 갖고 있는 지역변수 i를 출력한다면
// 이것은 동적인 유효범위!(Dynamic Scope)
// 근대적인 언어(최근에 만들어진 언어)는 동적인 프로그래밍 스타일을 갖고 있다!
}
public static void main(String[] args) {
int i = 1;
a();
}
}
↓↓↓↓ 코드 다운로드 ↓↓↓↓
'🖥️프로그래밍 언어 > Java' 카테고리의 다른 글
[JAVA] 자바 클래스 이해하기 Part2 (feat. 계산기) (2) | 2022.09.21 |
---|---|
[JAVA] 자바 클래스 이해하기 Part1 (feat. 계산기) (2) | 2022.09.20 |
[JAVA] 자바 지역변수, 전역변수 + 유효범위 Part1 (0) | 2022.09.18 |
[JAVA] 자바 클래스/인스턴스 변수 + 클래스/인스턴스 메소드 총정리 (0) | 2022.09.17 |
[JAVA] 자바 클래스 메소드(Class method) (0) | 2022.09.16 |