☆ 변수의 종류와 특징
변수의 종류 | 선언위치 | 생성시기 |
클래스 변수 | 클래스 영역 | 클래스가 메모리에 올라갈 때 |
인스턴스 변수 | 인스턴스가 생성되었을 때 | |
지역변수 | 클래스 영역 이외의 영억(메서드, 생성자, 초기화 블럭 내부) | 변수 선언문이 수행되었을 때 |
1. 인스턴스변수
클래스의 인스턴스를 생성할 때
2. 클래스 변수
- 인스턴스변수 앞에 static을 붙이기만 하면 됨.
- 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성의 경우, 클래스변수로 선언(인스턴스변수와 달리, 클래스변수는 모든 인스턴스가 공통된 저장공간을 공유하기 때문)
- 인스턴스변수와 달리 인스턴스를 생성하지 않고도 언제라도 바로 사용 ex) 클래스이름.클래스변수
- 클래스가 메모리에 로딩될 때 생성되어 프로그램이 종료될 때 까지 유지
- public을 붙이면 '전역변수(global variable)'
3. 지역변수(local variable)
- 메서드 내에 선언되어 메서드 내에서만 사용 가능.
- 메서드가 종료되면 소멸되어 사용x
★ 메서드 선언과 구현
int add(int a, int b) // 반환타입 메서드이름(타입 변수명)
{
int result=a+b;
return result;
}
1. 클래스 메서드(static 메서드)
- 객체를 생성하지 않고도 클래스이름.메서드이름(매개변수)
- 인스턴스와 관계x
2. 인스턴스 메서드
- 인스턴스 변수가 필요함
1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙임.
2. 클래스 변수(static변수)는 인스턴스를 생성하지 않아도 사용할 수 있음.
3. 클래스 메서드는 인스턴스 변수를 사용할 수 없음
4. 메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려.
반응형
'JAVA' 카테고리의 다른 글
생성자(Constructor) (0) | 2020.12.06 |
---|---|
Interface (0) | 2020.12.06 |
제어자(modifier) (0) | 2020.12.06 |
클래스와 객체 (0) | 2020.12.06 |
Java의 접근 권한 예약어 (0) | 2020.01.18 |