

package ex04.TEST;
public class ScopeEx01 {
static int n2= 2;// static에 저장
int n1 = 1;// heap에 저장
static void m1(){//메서드 내에 만들어지는 변수를 지역변수
int n5 = 10; // m1 메서드를 호출해야지 m1내부인 n5의 값이 뜸 stack에 저장
System.out.println("m1 : " + n5);
}
//메인 시작전에 static에 m1 메소드와 n2 변수가 로드 되어 있음.
public static void main(String[] args) {
System.out.println(1);
m1(); // static은 메인 안에서 한번 밖에 호출이 안됨.
System.out.println(2);
ScopeEx01 sc =new ScopeEx01();
System.out.println(sc.n1);
sc.m2();
}
void m2() {
System.out.println("m2 : " + n1);
}
}
스코프:
클래스 스코프:어느 메서드에서든지 사용 가능하다.
클래스 내 static 스코프 사용 방법: 클래스 명. 변수명
heap: heap 끼리는 같은 scop여서 접근이 가능
(저장)(메서드 내부)stack(n5=10):외부 접근 불가능(지역 변수)
(찾을때)(메서드 내부) static, heap 해당 스코프에서 호출 하기 때문에 해당 스코프가 된다.
메서드(지역) 스코프: 해당 스코프 내에 서만 사용 가능하고 메서드를 호출 할 때 사용되며
메서드의 임무가 끝나면 사라진다.
스택메모리:
기초자료형일 경우에는 값을 stack 메모리에 저장한다.
클래스(전역)스코프

지역 스코프

Share article