멤버(인스턴스) 변수와 클래스(스태틱)변수.
인스턴스 메서드에는 인스턴스+스태틱 변수
스태틱 메서드는 only 스태틱변수
물론! 지역(로컬)변수는 어디서나 사용할 수 있다구!
☆메서드는 클래스 종속적이다. 함수는 따로 쓸 수 있음, c언어에서는 애초에
클래스가 없으니 함수라고쓰고 자바에서는 메서드라고 쓴다.
지역변수는 다른 언어에서도 쓰는 용어로, 함수(혹은 메서드)내부에서만 사용
메모리 영역은 스택영역에 할당되며 함수가 호출될 때 생성되고 함수가 끝나면
소멸한다.
멤버(인스턴스) 변수는 클래스 내의 변수로 선언한다.
클래스 내부에서 사용하고 접근제어자가 private가 아니라면
다른 클래스에서 사용 가능하다.
메모리영역은 힙 영역에 할당되고 인스턴스가 생성될 때 힙에 생성되고
(c언어 malloc같음) 후에 가비지 컬렉터가 메모리 수거 시에 소멸됨
스태틱(클래스) 변수는 static예약어를 통해 클래스 내부에 생성가능하다.
클래스 내부에서 사용하고 인스턴스와 마찬가지 private가 아니면
다른 클래스에서 참조가능한데 인스턴스변수와 차이점은 인스턴스를 생성하지 않아도 클래스명.스태틱변수명 으로 사용이 가능하다.
메모리영역은 데이터 영역에 할당되며 프로그램이 처음 시작할 때 상수와 함께 데이터 영역에 생성되고 프로그램이 끝나고 메모리를 해제할 때 소멸된다.
(c언어 전역변수 느낌이다.)
'Programming > Java' 카테고리의 다른 글
[JAVA] URI와 URL의 차이 간단하게 이해 (0) | 2022.01.27 |
---|---|
[Java] 디자인 패턴 - Decorator(데코레이터, 장식자) 패턴 (0) | 2022.01.25 |
[Java] 디자인 패턴 - Proxy(프록시) 패턴 (0) | 2022.01.25 |
인텔리제이는 신이고 무적이다. ClassNoTFoundException 해결 (0) | 2022.01.12 |
스프링(Spring)의 객체지향 (0) | 2022.01.10 |