● 변수의 종류
1. 지역변수(local variable)
- 클래스 중괄호 영역은 포함되지 않으며, 메소드 또는 그 안의 영역에서 선언된 변수
2. 매개변수(parameter)
- 메소드의 소괄호 안에서 선언되는 변수, 해당 메소드 안에서만 사용 가능
3. 전역변수(global variable)
- 클래스 중괄호 영역에서 선언된 변수, 클래스 내 전 지역에서 사용 가능
4. 정적변수(static variable, class variable)
- 객체 간 공유, 편의성
● 저장기억부류(Storage class)
![](https://blog.kakaocdn.net/dn/b9HWH0/btruG0j09E0/gP9uu65K4kqmfsXBtdzLi0/img.png)
실습(변수)
1. 전역 변수
※ 변수 및 메소드 생성
public class Variable1 {
int data = 10;
void increaseData() {
System.out.println(++data);
}
}
- 생성자로 초기화 O
public class Variable2 {
public static void main(String[] args) {
Variable1 v1 = new Variable1();
v1.increaseData();
v1.increaseData();
v1.increaseData();
v1.increaseData();
v1.increaseData();
v1 = new Variable1(); // 전역변수는 new를 만나면 초기화된다.
v1.increaseData();
v1.increaseData();
v1.increaseData();
v1.increaseData();
v1.increaseData();
}
}
![](https://blog.kakaocdn.net/dn/bcdNGM/btruDDpkLub/NLxbVb1PuXNnhjNI5KePhk/img.png)
- 데이터 공유 X
public class Variable2 {
public static void main(String[] args) {
Variable1 v1 = new Variable1();
Variable1 v2 = new Variable1();
v1.data = 10;
v2.data = 30;
System.out.println(v1.data);
System.out.println(v2.data); // 전역변수는 데이터를 공유하지 않는다.
}
}
![](https://blog.kakaocdn.net/dn/brMEiU/btruNV9mfJL/9QKs3BUSIuZXEAhKszhQjk/img.png)
2. 정적 변수
※ 변수 및 메소드 생성
public class Variable1 {
static int data_s = 10;
// static 필드에서는 static 변수만 사용 가능
static void increaseData_s() {
System.out.println(++data_s);
}
}
- 생성자로 초기화 X
public class Variable2 {
public static void main(String[] args) {
Variable1 v1 = new Variable1();
v1.increaseData_s();
v1.increaseData_s();
v1.increaseData_s();
v1.increaseData_s();
v1.increaseData_s();
v1 = new Variable1(); // 정적변수는 생성자로 초기화되지 않는다.
v1.increaseData_s();
v1.increaseData_s();
v1.increaseData_s();
v1.increaseData_s();
v1.increaseData_s();
}
}
![](https://blog.kakaocdn.net/dn/X8tFX/btruMoKH1cq/pCjzufhMIadxVk9Ak8VTd0/img.png)
- 데이터 공유 O
public class Variable2 {
public static void main(String[] args) {
Variable1 v1 = new Variable1();
Variable1 v2 = new Variable1();
Variable1.data_s = 10;
Variable1.data_s = 30;
System.out.println(Variable1.data_s);
}
}
![](https://blog.kakaocdn.net/dn/cIzGfO/btruLtS2usX/xrxDlNJeQcwUEJxf3vyVX0/img.png)
※ 사용법 및 편의성
public class Variable2 {
public static void main(String[] args) {
// 정적변수 사용 방법 : 클래스명.메소드명()
Variable1.increaseData_s();
// 편의성
System.out.println(Math.ceil(10.1));
}
}
![](https://blog.kakaocdn.net/dn/tj9Z5/btruKkouajp/KW0WaGmphA5P2akkjEdEgK/img.png)
'웹 개발 > Java' 카테고리의 다른 글
[Web_JAVA] 18 (0) | 2022.03.04 |
---|---|
[Web_JAVA] 17 (0) | 2022.03.03 |
[Web_JAVA] 15 (0) | 2022.03.01 |
[Web_JAVA] 14 (0) | 2022.02.28 |
[Web_JAVA] 13 (0) | 2022.02.27 |