✍ 선언위치에 따른 변수 종류
👉인스턴스 변수(instance variable)
클래스 영역에 선언
When? 인스턴스 생성시 made!!
인스턴스마다 별도의 저장공간을 가지므로 서로 다른 값 가질 수 있음.
인스턴스마다 고유한 상태를 유지해야하는 경우 사용
👉클래스 변수(class variable)
모든 인스턴스가 공통된 저장공간(변수)을 공유
한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성일 때 사용!
👉지역변수(local variable)
메서드 내에 선언
메서드 내에서만 사용가능
메서드 종료 -> 반드시 소멸되어 사용 x
블록{} 벗어나면 사용 불가
👉 호출스택(call stack)
💡 우선 스택(stack)이란?
밑이 막힌 상자 / 위에 차곡차곡 쌓임.
💡 그럼 호출스택은?
메서드 수행에 필요한 메모리가 제공되는 공간
메서드 호출되면 호출스택에 메모리를 할당함.
종료되면 해제됨.
💡 호출스택 특징
메서드가 호출되면 수행에 필요한 만큼의 메모리를 스택에 할당받음.
메서드가 수행 마치고나면 사용했던 메모리 반환 후 스택에서 제거됨.
호출스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드
💡 그럼 나머지는?
대기 중인 메서드!!
아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드
👉 매개변수
기본형과 참조형으로 구분
기본형 : 변수의 값 읽기만 가능
참조형 : 변수의 값 읽고 쓰기 가능