class Variables
{
int iv; // 인스턴스 변수
static int cv; // 클래스 변수(static변수, 공유변수)
void method()
{
int lv = 0; // 지역변수
}
}
👉 클래스 변수(class variable)
- 같은 클래스의 모든 인스턴스들이 공유하는 변수
- 인스턴스 생성없이 '클래스이름.클래스변수명'으로 접근
- 클래스가 로딩될 때 생성되고, 프로그램이 종료될 때 소멸
👉 인스턴스 변수(instance variable)- 각 인스턴스의 개별적인 저장공간. 인스턴스마다 다른값 저장가능
- 인스턴스 생성 후, '참조변수.인스턴스변수명'으로 접근
- 인스턴스를 생성할 때 생성되고, 참조변수가 없을때 가비지컬렉터에 의해 자동 제거됨
👉 지역 변수(local variable)- 메서드 내에 선언되며, 메서드의 종료와 함께 소멸
- 조건문, 반복문의 블럭{ } 내에 선언된 지역변수는 블럭을 벗어나면 소멸
- ✨✨하나의 메서드는 한가지 기능만 수행하도록 작성하는 것이 좋다.
- 기억장소를 생성하지 않는다.
- {문장들} 묶은 것 (작업단위)
- 값(입력)을 받아서 처리하고, 결과를 반환(출력)
( 입력받는 값이 없을 수도 있고, 결과를 돌려주지 않을 수도 있다.)
- 코드의 중복을 줄임
- 코드의 관리가 쉬움
- 코드를 재사용할 수 있음
- 코드가 간결해서 이해하기 쉬워짐
- 메서드영역(Method Area)
👉클래스정보와 클래스변수가 저장되는곳- 호출스택(Call Stack)
👉메서드 수행에 필요한 메모리가 제공되는 공간.
메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제
->아래 있는 메서드가 위의 메서드를 호출
->맨 위의 메서드 하나만 실행 중. 나머지는 대기중
- 힙(heap)
👉인스턴스가 생성되는 공간. new연산자에 의해서 생성되는 배열과 객체는 모두 여기에 생성됨.
- 인스턴스 메서드
👉 인스턴스 생성 후, '참조변수.메서드이름()'으로 호출
👉 인스턴스 멤버와 관련된 작업을 하는 메서드
👉 메서드 내에서 인스턴스 변수(iv) 사용가능- static 메서드 (클래스메서드)
👉 객체생성없이 '클래스이름.메서드이름()'으로 호출
👉 인스턴스 멤버와 관련없는 작업을 하는 메서드
👉 메서드 내에서 인스턴스 변수(iv) 사용불가
한 클래스 안에 같은 이름의 메서드 여러개 정의하는 것
💎오버로딩의 조건
- 메서드 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야한다.
- 반환 타입은 영향없다.
💍 공부하는 곳은~
자바의 정석o((>ω< ))o