객체(Object), 클래스(Class), 인스턴스(Instance)는 비슷한 듯 하지만 서로 다른 의미를 가진다. 특히 객체 ≠ 클래스
라는 사실은 많은 사람들이 간과하고 있는 사실 중 하나이다. 객체는 객체 지향적 프로그래밍(OOP)에서 말하는 그것이고, 클래스는 그러한 객체들을 구현하는 매커니즘일 뿐이다. 자바에서는 class
라는 키워드로 구조화하는 그것에 해당한다. 마지막으로 인스턴스는 프로그램 실행 중에 그 클래스를 실체화하여 참조하기 위한 구체적인 구현방식으로, 자바에서는 new
키워드로 생성할 수 있다.
인스턴스는 클래스를 기반으로 생성된 실체이다.