728x90
클래스 내의 멤버 변수를 제외한 나머지 변수들은 모두 로컬변수
이고, 멤버변수 중 static 키워드를 사용한 것은 클래스변수
그렇지 않은 것은 인스턴스 변수
이다.
/* 클래스 영역 */
class Variables {
int a; // 인스턴스 변수
static int b; // 클래스 변수
/* 메서드 영역 */
void method() {
int c = 0; // 로컬 변수
}
}
로컬 변수
- 메서드 안에서 선언된 변수
- 메서드가 호출될 때 생성되고 메서드가 종료될 때 제거
- 스택 stack 메모리에 저장
- 기본적으로 메서드 블록 scope를 따른다
- 반드시 사용 전에 초기화 필수
인스턴스 변수
- 메서드 밖에서 선언된 변수
- 객체 생성할 때 생성되고 객체가 제거될 때 삭제
- 힙 heap 메모리에 저장
- 기본적으로 클래스 블록 scope를 따른다
- 자동으로 초기화
💡 생성자는 인스턴스 변수에 데이터를 초기화하는 역할
클래스 변수
- 메서드 밖에서 선언된 변수로
static
키워드를 사용 - 프로그램이 실행될 때 자동으로 생성되고, 프로그램이 종료될 때 삭제
- 인스턴스와 무관하게 객체 생성 전에 생성
- 자동으로 초기화
728x90
'Language > JAVA' 카테고리의 다른 글
[JAVA] 자바의 접근 지정자(access modifier) (0) | 2023.07.24 |
---|---|
[JAVA] 생성자와 this (0) | 2023.07.24 |
[JAVA] 변수의 기본형 & 참조형 타입의 차이 (0) | 2023.07.24 |
[JAVA] 객체, 클래스, 인스턴스의 차이 (0) | 2023.07.17 |
[JAVA] Bear의 Fish먹기 게임 (0) | 2022.01.12 |
728x90
클래스 내의 멤버 변수를 제외한 나머지 변수들은 모두 로컬변수
이고, 멤버변수 중 static 키워드를 사용한 것은 클래스변수
그렇지 않은 것은 인스턴스 변수
이다.
/* 클래스 영역 */
class Variables {
int a; // 인스턴스 변수
static int b; // 클래스 변수
/* 메서드 영역 */
void method() {
int c = 0; // 로컬 변수
}
}
로컬 변수
- 메서드 안에서 선언된 변수
- 메서드가 호출될 때 생성되고 메서드가 종료될 때 제거
- 스택 stack 메모리에 저장
- 기본적으로 메서드 블록 scope를 따른다
- 반드시 사용 전에 초기화 필수
인스턴스 변수
- 메서드 밖에서 선언된 변수
- 객체 생성할 때 생성되고 객체가 제거될 때 삭제
- 힙 heap 메모리에 저장
- 기본적으로 클래스 블록 scope를 따른다
- 자동으로 초기화
💡 생성자는 인스턴스 변수에 데이터를 초기화하는 역할
클래스 변수
- 메서드 밖에서 선언된 변수로
static
키워드를 사용 - 프로그램이 실행될 때 자동으로 생성되고, 프로그램이 종료될 때 삭제
- 인스턴스와 무관하게 객체 생성 전에 생성
- 자동으로 초기화
728x90
'Language > JAVA' 카테고리의 다른 글
[JAVA] 자바의 접근 지정자(access modifier) (0) | 2023.07.24 |
---|---|
[JAVA] 생성자와 this (0) | 2023.07.24 |
[JAVA] 변수의 기본형 & 참조형 타입의 차이 (0) | 2023.07.24 |
[JAVA] 객체, 클래스, 인스턴스의 차이 (0) | 2023.07.17 |
[JAVA] Bear의 Fish먹기 게임 (0) | 2022.01.12 |