자바

6. Java 스코프

juhoyang 2024. 9. 23. 08:43

스코프

- 변수의 접근가능한 유효범위

종류 선언한 위치 생성 소멸
지역변수 코드블록 {} 선언문 수행시 선언된 코드블록이 끝났을 때
멤버변수 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 프로그램 종료시 까지
인스턴스 변수 인스턴스 생성시 객체가 메모리에 지워질 때

 

스코프가 필요한 이유 

효율적인 메모리 사용 : 변수를 필요한 범위안에 생성해 사용하고 범위가 끝나면 메모리에 제거함으로 효율을 가져옴

코드의 복잡성을 낮추기 위해 : 스코프 제한이 없다면 유지보수 할때 신경써야할 변수가 많아진다. 

 

 

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