Java
Java - scope
권현재
2023. 5. 4. 23:44
java에도 scope 개념이 있다.
scope( 유효 범위 ) 는 사실 지금까지 코드를 작성하면서 당연시하게 생각했던 것들 중 몇가지가 있다.
한마디로 정리하면 변수가 접근할 수 있는 범위 라고 생각하면 좋을 것 같다.
let i = 0;
for (let i = 0; i < 5; i++) {
System.out.println(i); // 0, 1, 2, 3, 4
}
System.out.println(i); // 0
이렇게 for문 안에 있는 i는 밖에서 사용할 수 없다.
그럼 아래 코드처럼 변경하면 어떻게 될까 ?
package lifeCoding_03_scope;
// 무한 루프
public class _02_ {
static int i;
static void a() {
i = 0;
}
public static void main(String[] args) {
for (i = 0; i < 5; i++) {
a();
System.out.println(i); // 무한 반복
}
}
}
아래 코드를 보면 scope의 개념을 명확하게 잡을 수 있다.
즉 메소드에 변수가 선언되지 않았을 경우 클래스에서 같은 이름의 변수를 찾아올 수 있지만, 그 반대는 적용 될 수 없다.
package lifeCoding_03_scope;
class C {
int v = 10;
void m() {
int v = 20;
System.out.println("v : " + v); // 지역변수
System.out.println("this.v : " + this.v); // 전역변수
}
}
public class _06_ {
public static void main(String[] args) {
C c1 = new C();
c1.m();
}
}
참고 영상 : https://www.youtube.com/playlist?list=PLuHgQVnccGMCeAy-2-llhw3nWoQKUvQck