프로그래밍 언어 중에는 다양한 언어가 있는데 저는 그 중에서도
최근에 공부하고 있는 "자바"에 대해서 말을 해보겠습니다.
자바에는 많은 변수가 존재한다. 그래서 오늘은 자바 변수에 대해서 설명을 할려고 합니다.
"변수" 란 계속 변하는 값을 저장하는 공간을 의미 합니다. 그럼 몇몇의 사람들은 '왜 제목이 변수의 종류이지' 라는
의문을 가지는 사람이 있을 수도 있다.
자바에서 변수는 하나만 존재하는 것이 아닌 "클래스변수", "인스턴스변수", "지역변수" 이렇게 총 3가지가 있다.
먼저 "클래스 변수"에 대해 설명을 하겠다.
<클래스 변수>
클래스 변수는 다음에서 설명할 인스턴스변수와 선언되는 위치가 동일한데 변수 앞에 "static" 이라는 것이 붙으면
그게 클래스변수가 된다.
클래스변수는 변수들이 공통된 저장공간을 공유하게 된다. 이런 점에서도 인스턴스 변수와 차이를 보인다.
<인스턴스 변수>
인스턴스 변수는 클래스 변수와 동일하게 클래스 영역에 선언된다.
인스턴스 변수는 또한 독립적인 저장공간을 지니고 있기 때문에 다른 값을 가질 수 도 있다.
예를 들어보겠다.
class Example{
static int num; //클래스변수
static String ex; //클래스변수
double x; //인스턴스 변수
String str; //인스턴스 변수
}
이러한 클래스가 있다고 하면 "static int num", " static String ex"이 변수는 위에 설명한거 처럼
변수 앞에 static이 붙었기 때문에 클래스변수가 된다.
반면 변수 앞에 static은 붙지 않았지만 클래스영역에 선언된 변수 "double x", "String str" 변수를 바로
인스턴스 변수라고 한다.
이 두가지 변수는 클래스가 종료될 때 소멸된다는 성질을 지니고 있다.
<지역변수>
마지막으로 자바의 변수에는 "지역변수" 라는 것이 있다.
지역변수는 위의 두가지 변수랑 달리 클래스영역에 선언되는 것이 아니라 메서드 영역에 선언되는 변수를 말한다.
하지만 지역변수는 메서드가 종료되면 지역변수 또한 소멸되어 더이상 사용할 수 없다.
class Example{
static int num; //클래스변수
String str; //인스턴스 변수
public static void main(String[] args){
int a,b; //지역 변수
}
}
위처럼 자바에는 3가지의 변수들이 있고, 각각의 변수들의 특징을 나열해보았다
'JAVA' 카테고리의 다른 글
[JAVA] Primitive Type vs Reference Type (0) | 2023.03.21 |
---|---|
Java의 역사 (0) | 2023.03.12 |
Spring framework 핵심기술 - IoC 컨테이너 (0) | 2023.01.05 |
자바 I/O 와 NIO 차이 (0) | 2022.06.14 |
I/O란? (0) | 2022.06.14 |