변수(Variable) 란?
데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간
선언 위치에 따른 변수의 종류
1. 인스턴스 변수 (Instance variables)
- 클래스 영역에 선언된다.
- 클래스의 인스턴스를 생성할 때 만들어진다.
- 인스턴스 변수 값을 읽어오거나 저장하기 위해서는 먼저 인스턴스 를 생성해야 한다. 1
![]() |
![]() |
2. 클래스 변수 (Class variables)
- 인스턴스 변수 앞에 static을 붙인다.
- 클래스가 처음 호출될 때 시작하여 프로그램이 끝날 때 소멸한다.
- 인스턴스 변수와 다르게 인스턴스를 생성하지 않고도 언제든지 바로 사용할 수 있다.
- 자주 사용되며 변함이 없는 자료일 경우 해당 클래스 변수로 선언한다.
![]() |
![]() |
3. 지역 변수 (Local variable)
- 메소드 안에서만 유효하며, 다른 곳에서는 부를 수 없다. 2
- 메소드가 실행 될 때 메모리를 할당 받고, 메소드가 끝나면 소멸되어 사용할 수 없다.
![]() |
![]() |
앞에 설명한 내용을 표로 정리하면 다음과 같다.
변수의 종류 | 선언 위치 | 생성 시기 |
인스턴스 변수 | 클래스 영역 | 인스턴스가 생성되었을 때 |
클래스 변수 | 클래스 메모리에 올라갔을 때 | |
지역 변수 | 클래스 이외의 영역 | 변수 선언문이 수행되었을 때 |
다음은 각 변수들을 생성 및 선언하는 전체 코드이다.
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
|
package test;
class example {
int instanceNum = 10; // 인스턴스 변수
static int classNum = 20; // 클래스 변수
int lacalNum() { // 메소드
int lacalNum = 30; // 지역 변수
return lacalNum;
}
}
public class exampleTest {
public static void main(String[] args) {
example ex = new example(); // 객체 생성
System.out.println(ex.instanceNum); // 인스턴스 변수: 인스턴스 생성 후 사용
System.out.println(example.classNum); // 클래스 변수: 모든 인스턴스가 공통으로 사용하므로 인스턴스 생성을 하지 않고 사용
System.out.println();
// System.out.println(ex.lacalNum); // localNum은 메소드 내에서만 사용하는 것이기 때문에 에러
System.out.println(ex.lacalNum()); // 지역 변수: 메소드 또는 반복문 안에서만 사용 가능
}
}
|
cs |
'Study' 카테고리의 다른 글
[JAVA] 동기, 비동기와 멀티스레딩 (0) | 2022.06.17 |
---|---|
[JAVA] Process(프로세스)와 Thread(스레드) (0) | 2022.06.01 |
[JAVA] JVM의 Garbage Collector (0) | 2022.05.17 |
[JAVA] == 연산자, equals와 hashCode (0) | 2022.05.04 |
THREE Paradigms (0) | 2022.03.27 |