안녕하세요.


진도를 나가기 전에 알아야될 개념이 있어서 짚고 넘어갈까 합니다.


아래와 같은 축구선수 클래스를 만들어봅시다. (메인 함수는 없습니다)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// SoccerPlayer.java
 
 
package study;
 
public class SoccerPlayer {
    
    int str = 100// 공격력
    int def = 70// 수비력
    
    // 공격 중심
    public void offensive() {
        
        str += 10;
        def -= 10;
 
    }
 
    // 수비 중심
    public void defensive() {
        
        str -= 10;
        def += 10;
 
    }
}
 
cs


(14행은 str = str + 10을 축약한 형태입니다. 마찬가지로 15행은 def = def - 10의 축약입니다.)


변수가 선언된 위치를 유심히 봅시다. str과 def 변수는 함수 바깥에 선언되어 있습니다. 만약 offensive 함수 속에 선언하면 어떻게 될까요?





20, 21행에서 에러가 나는군요.

왜냐하면 함수 속에서 변수를 선언하면 그 함수 속에서만 사용할 수 있기 때문입니다.


이처럼 함수 바깥에 선언하여 클래스 전체에서 사용가능한 변수를 전역변수,

함수 속에 선언하여 해당 함수 속에서만 사용가능한 변수를 지역변수라고 합니다.


감사합니다.

+ Recent posts