객체지향프로그래밍에 대해 공부하면 가장 먼저 나오는 단어들인 클래스, 객체, 인스턴스. 이것들에 대해 설명하자니 머릿속에서 확실한 설명이 입밖으로 나오지 않아 내용을 정리해보려 한다.
: 객체를 만들기 위한 설계도 혹은 템플릿으로 객체의 속성 또는 메서드를 정의해 놓는 틀이다.
ex) 붕어빵을 만들기 위한 붕어빵틀
public class Car {
// 속성(필드)
String color;
String model;
int speed;
// 메서드
void accelerate() {
speed += 10;
}
void brake() {
speed -= 10;
}
}
: 클래스를 기반으로 생성되어 실제로 메모리에 할당된 것
ex) 붕어빵틀로 만들어진 붕어빵
// 참조 변수 선언(이 상태에서 myCar는 객체가 아님)
Car myCar;
// 객체 생성(이때 메모리에 할당됨)
myCar = new Car();
: 객체와 거의 같은 뜻으로 사용되며, 객체들 중 특정한 클래스의 객체임을 강조할때 주로 사용된다.
ex) 저 붕어빵틀로 만들어진 붕어빵
// 객체이자 인스턴스
// myCar 객체는 Car 클래스의 인스턴스다.
Car myCar = new Car();
클래스는 설계도(메모리에 등록되지 않은)
객체는 실체화 된 것(메모리에 등록됨)
인스턴스는 특정한 클래스의 객체임을 강조할때 사용