- 인스턴스화 : 클래스를 가지고 객체를 만드는 행위
- 인스턴스 : 클래스로부터 생성된 객체
인스턴스 멤버
- 객체에 소속된 멤버 (객체가 있어야만 사용할 수 있는 멤버)
- 소속 : 객체가 존재해야만 사용할 수 있다는 뜻, (객체 외부에 있어도 상관 없음)
- 필드는 객체 내부에 존재하지만 메소드는 class라는 바이트 코드 파일에 저장됨 - 객체가 있어야만 사용할 수 있는 멤버
- 종류 : 필드, 메소드
- 생성자는 객체를 생성하기 위한 역할이므로 만들어진 객체에는 생성자가 없음 - 정적 (static) 멤버 : 클래스에 고정된 멤버 (객체 없이도 사용할 수 있는 멤버)
인스턴스 멤버 선언
public class Car{
//인스턴스 필드 선언
int gas;
//인스턴스 메소드 선언
void setSpeed(int speed) {}
}
인스턴스 멤버 사용
Car myCar = new Car();
myCar.gas = 10;
myCar.setSpeed(60);
- 필드는 객체마다 따로 존재함
- 메소드는 각 객체마다 존재하지 않고 메소드 영역에 저장되고 공유됨
- 이유 : 필드는 객체마다 데이터가 다르지만 메소드는 바뀌지 않기 때문에 메모리 효율을 위해 메소드 영역에 1번만 저장
- 로딩 : 컴파일한 바이트 코드 파일을 메소드 영역에 저장하는 것
- 바이트코드 파일 (클래스) 별로 정리
this 키워드
- 현재 자신의 객체를 의미
- 생성자와 메소드의 매개변수명이 인스턴스 멤버인 필드명과 동일한 경우, 인스턴스 필드임을 강조하고자 할 때 사용
- 객체에 소속된 멤버에만 this 키워드를 붙일 수 있음
- 정적 멤버에는 this를 붙일 수 없음
'JAVA > 2. 객체 지향 프로그래밍' 카테고리의 다른 글
[JAVA] 생성자 (0) | 2023.11.16 |
---|---|
[JAVA] 필드 (0) | 2023.11.16 |
[JAVA] 클래스 (0) | 2023.11.16 |
[JAVA] 객체 지향 프로그래밍이란 (0) | 2023.11.16 |
[JAVA] 열거 타입 (Enum) (0) | 2023.11.16 |