클래스와 객체
클래스는 객체를 생성하기 위한 하나의 틀이며, 설계도이다. 설계도를 잘 짜면 쉽고 빠르게 좋은 제품을 생산할 수 있듯, 클래스를 잘 짜놓으면 객체를 쉽고 빠르게 만들어 낼 수 있다.
객체와 인스턴스
클래스로 부터 객체를 만들어 내는 과정을 인스턴스화라고 한다. 그 클래스로 부터 만들어진 객체는 인스턴스라 한다. 만약 rpg 게임이 있다고 하자. 신규 가입 유저가 존재할 때 캐릭터 생성을 누르면, 미리 설계해둔 Chracter라는 클래스를 통해 해당 유저의 캐릭터가 생성된다. 여기서 생성된 캐릭터가 인스턴스가 되는 것이다.
객체의 구성요소
- property: 변수 (특성, 필드, 상태) ⇒ 인스턴스마다 다른 속성을 가질 수 있다.
- function: 메소드 (함수, 행위) ⇒ 모든 인스턴스에 대해 동일하다.
아래와 같이 간단한 Tv라는 클래스가 있을 때, size라는 값은 인스턴스마다 다를 수 있지만 power를 키고 끄는 메소드는 어느 티비에서나 동일하다는 것을 예로 들 수 있겠다!
class Tv {
int size;
void power() { power = !power; }
}
인스턴스 다루기
인스턴스를 다루기 위해서는 해당 인스턴스 타입의 참조변수로만 다루는 것이 가능하다.
// tv1 참조변수의 타입이 Tv로 일치한다.
Tv tv1 = new Tv();
- 참조변수가 없는 인스턴스는 더 이상 접근이 불가능 하므로 가비지 컬렉터에 의해 자동적으로 메모리에서 제거된다.
- +) 자바는 가비지 컬렉터 기능을 제공하여 더이상 참조가 불가능한 인스턴스는 자동으로 메모리에서 제거되도록 해준다. 이를 제공하지 않는 언어에서는 개발자가 일일이 메모리를 해제해주어야한다.
'Study > Java' 카테고리의 다른 글
[Java] 변수의 초기화 (0) | 2020.03.10 |
---|---|
[Java] 생성자와 this (0) | 2020.03.10 |
[Java] 오버로딩 (0) | 2020.03.10 |
[Java] 변수와 메소드 (0) | 2020.03.10 |