(→개요) |
|||
(다른 사용자 한 명의 중간 판 6개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
==개요== | ==개요== | ||
; 전역 변수보다 지역변수가 우선순위가 더 높다 | ; 전역 변수보다 지역변수가 우선순위가 더 높다 | ||
* 메소드 내에서의 i 는 외부에 영향을 주지 않는다 | * 메소드(지역)내에서의 i 는 외부에 영향을 주지 않는다 | ||
<syntaxhighlight lang='java' run> | <syntaxhighlight lang='java' run> | ||
public class ScopeDemo { | public class ScopeDemo { | ||
static void a() { | static void a() { | ||
int i = | int i = 10; | ||
} | } | ||
public static void main(String[] args) { | public static void main(String[] args) { | ||
15번째 줄: | 15번째 줄: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang='java' run> | <syntaxhighlight lang='java' run> | ||
public class DemoScope { | public class DemoScope { | ||
static int i; | static int i; | ||
static void a() { | static void a() { | ||
i = | i = 10; | ||
} | } | ||
public static void main(String[] args) { | public static void main(String[] args) { | ||
30번째 줄: | 28번째 줄: | ||
} | } | ||
} | } | ||
</syntaxhighlight> | |||
* 아래와 같이 동일한 변수명으로 멤버변수, 메소드(지역) 내 변수를 할당했을떄 어떻게 될까? | |||
<syntaxhighlight lang='java' multi file=Demo.java > | |||
class Demo { | |||
int v = 10; | |||
void m() { | |||
int v = 20; | |||
System.out.println(v); | |||
} | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang='java' multi file=DemoScope2.java main run> | |||
public class DemoScope2 { | |||
public static void main(String[] args) { | |||
Demo c1 = new Demo(); | |||
c1.m(); // -> 메소드 내 지역변수가 출력이 된다. | |||
} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> |
2021년 10월 6일 (수) 22:06 기준 최신판
개요[ | ]
- 전역 변수보다 지역변수가 우선순위가 더 높다
- 메소드(지역)내에서의 i 는 외부에 영향을 주지 않는다
Java
Copy
public class ScopeDemo {
static void a() {
int i = 10;
}
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
a(); // 문맥상 i 를 0으로 초기화 시키는 것처럼 보이지만 클래스 멤버 메소드 내에서만 사용되고 폐기된다.
System.out.println(i);
}
}
}
Loading
Java
Copy
public class DemoScope {
static int i;
static void a() {
i = 10;
}
public static void main(String[] args) {
for(i = 0; i < 5; i++) {
a();
System.out.println(i);
}
}
}
Loading
- 아래와 같이 동일한 변수명으로 멤버변수, 메소드(지역) 내 변수를 할당했을떄 어떻게 될까?
Java
Reload
Demo.java
Copy
class Demo {
int v = 10;
void m() {
int v = 20;
System.out.println(v);
}
}
Loading
DemoScope2.java
Copy
public class DemoScope2 {
public static void main(String[] args) {
Demo c1 = new Demo();
c1.m(); // -> 메소드 내 지역변수가 출력이 된다.
}
}
Loading
편집자 에어컨 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.