스코프
- 변수의 접근가능한 유효범위
종류 | 선언한 위치 | 생성 | 소멸 | |
지역변수 | 코드블록 {} | 선언문 수행시 | 선언된 코드블록이 끝났을 때 | |
멤버변수 | 클래스 변수 | 클래스 영역 | 클래스가 메모리에 올라갈 때 | 프로그램 종료시 까지 |
인스턴스 변수 | 인스턴스 생성시 | 객체가 메모리에 지워질 때 |
스코프가 필요한 이유
효율적인 메모리 사용 : 변수를 필요한 범위안에 생성해 사용하고 범위가 끝나면 메모리에 제거함으로 효율을 가져옴
코드의 복잡성을 낮추기 위해 : 스코프 제한이 없다면 유지보수 할때 신경써야할 변수가 많아진다.
1. 지역변수
- {} 블록코드 내에서만 사용할수 있는변수
2. 멤버변수
1) 클래스 변수
- static 으로 선언된 변수로 값을 저장하는 공간이 하나만 존재한다.
- 객체로 선언된 모든 클래스가 해당 변수를 공유한다.
- 클래스명.변수명 으로 호출이 가능하다. (Order.a)
2) 인스턴스 변수
- 객체가 생성될때 같이 생성되는 변수로 객체마다 변수를 관리한다.
참고
- static 메소드의 경우 클래스내 인스턴스 변수를 사용하지 못한다
- 인스턴스 변수는 객체를 생성할때 할당되는데 static 메소드는 객체 생성전에 사용할 수도 있어 안된다.
'자바' 카테고리의 다른 글
객체 지향과 절차지향 언어 비교 (0) | 2024.09.25 |
---|---|
7. 메서드 (0) | 2024.09.24 |
5. 반복문 (while, do-while, for) (0) | 2024.09.20 |
4. 조건문 (if, switch, ? :) (0) | 2024.09.20 |
3. 연산자 (0) | 2024.09.20 |