반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 | 31 |
Tags
- 핀트투자후기
- 직장인 소액투자
- fint
- 소액투자
- 자바기초
- 자바문법
- 핀트수익률
- 웹개발
- AI투자
- 재태크
- 인텔리제이
- fint후기
- 핀트
- 웹
- 핀트후기
- 핀트 후기
- 예외
- 자동투자
- 직장인소액투자
- 개발
- git
- fint 수익률
- 핀트 수익률
- 핀트투자
- 직장인재태크
- Java
- 로보어드바이저
- 자바
- 코틀린
- 직장인부업
Archives
- Today
- Total
하루하루 살아남기
[Java] 변수의 Scope / Static (2) 본문
반응형
public class ScopeClass {
int gloablVariable = 10;
static int staticVariable = 7;
public static void main(String[] args) {
ScopeClass v1 = new ScopeClass();
ScopeClass v2 = new ScopeClass();
v1.staticVariable = 50;
v2.staticVariable = 100;
System.out.println("static1: " + v1.staticVariable);
System.out.println("static2: " + v2.staticVariable);
}
}
public class ScopeClass {
int gloablVariable = 10;
static int staticVariable = 7;
public static void main(String[] args) {
ScopeClass v1 = new ScopeClass();
ScopeClass v2 = new ScopeClass();
}
}
globalScope 클래스는 인스턴스가 생성될 때, globalVariable 값을 저장하는 공간을 별개로 가집니다. 따라서 위 코드처럼 참조 변수를 하나 더 생성한다면 globalVariable값을 저장할 수 있는 공간이 별도로 생깁니다. 즉, globalVariable 변수의 값을 공유하지 않습니다. 아래 코드는 이를 확인하는 코드입니다.
public class ScopeClass {
int gloablVariable = 10;
static int staticVariable = 7;
public static void main(String[] args) {
ScopeClass v1 = new ScopeClass();
ScopeClass v2 = new ScopeClass();
v1.gloablVariable = 10;
v2.gloablVariable = 20;
System.out.println(v1.gloablVariable);
System.out.println(v2.gloablVariable);
}
}
위 코드를 실행하면 v1의 globalVariable 에는 10이, v2의 globalVariable에는 20이 출력됩니다. 각각 다른값을 저장한 거죠. 이번에는 static 변수에 값을 부여해 보겠습니다.
public class ScopeClass {
int gloablVariable = 10;
static int staticVariable = 7;
public static void main(String[] args) {
ScopeClass v1 = new ScopeClass();
ScopeClass v2 = new ScopeClass();
v1.staticVariable = 50;
v2.staticVariable = 100;
System.out.println(v1.staticVariable);
System.out.println(v2.staticVariable);
}
}
각각의 참조변수의 staticVariable에 50, 100을 대입했지만, 값은 100만 출력되었습니다. static 한 필드는 인스턴스를 생성할 때 만들어지는 것이 아니라서, 값을 저장할 수 있는 공간도 하나뿐입니다. 같은 공간을 사용하기 때문에 값을 공유합니다. 이런 변수를 클래스 변수라고 부릅니다. static하지않은 일반 변수는 인스턴스를 생성해야 사용할 수 있기 때문에 인스턴스 변수 라고 부릅니다.
클래스 변수는 인스턴스를 사용하지 않고도 사용할 수 있기 때문에 클래스 명.클래스 변수명으로 사용하는 것이 좋습니다
예를 들어 위 클래스의 경우에는 ScopeClass.staticVariable처럼 말이죠
728x90
반응형
'개발 > Java' 카테고리의 다른 글
[Java / 자바] 메서드 오버로딩(Method Overloading) (0) | 2021.03.15 |
---|---|
[Java / 자바] this 키워드 (0) | 2021.03.14 |
[Java / 자바] 생성자 (0) | 2021.03.14 |
[Java] 자바 열거형(enum) (0) | 2021.03.11 |
[Java] 변수의 스코프 / Static (0) | 2021.03.08 |
Comments