Class와 Instance가 무엇인지 알아보자.
객체 지향 언어란?
객체(Object) 란 실제 세계의 많은 사물들을 컴퓨터 내에서 하나의 객체로써 표현하는 하나의 프로그래밍 패러다임을 의미한다.
가령 사과, 사과 장수, 사과의 판매 처럼 실존하는 형태와 형태의 행위들을 표현할 수 있게 된다.
Class 란?
Class 란 하나의 틀(mold) 라고 보면 된다.
가령 현실 세계의 사과 장수는 수없이 많고, 각 사과장수는 공통된 특성을 가지고 공통된 행위가 가능하다.
컴퓨터 프로그래밍 에서는 이러한 상태와 특성 그리고 행위를 표현 가능하며 각각을 property와 method 라고 부른다.
가령 사과 장수라면, 나이, 가지고 있는 사과의 개수, 판매하고자 하는 사과의 가격 등의 특성을 가지고 ‘사과를 판매’ 하거나 ‘사과를 구매’ 하는 등의 행위가 가능할 것이다.
Instance란?
Instance란 위에서 정의한 class로 찍어낸 실제 객체를 의미한다.
가령 현실 세계에서 사과장수는 하나의 추상적인 개념이다. 즉, 사과의 갯수, 나이 처럼 각종 특성을 가지는 하나의 무형의 존재이지만 실제 사과장수는 현실에서 존재한다. 가령 옆집에 사는 사과장수의 경우 정해진 나이와 사과의 갯수를 가지고 실존하는 것이며, 이를 object 또 instance라고 부른다.
Java에서는 class를 통해 instance를 만들어 낼 수 있으며, 새로운 instance를 생성하면 그 데이터가 저장되고 데이터를 가르치는 참조변수에 그 주소값을 저장한다.
생성자(Constructor) 란?
가령 AppleSeller 라는 class 와 appleSeller1이라는 참조 변수를 가지는 instance를 만들었다고 가정하자.
이 만드는 과정에는 그 사과장수의 나이와 사과의 갯수처럼 최초로 설정해 주어야 하는 값들이 있고, 이러한 설정을 Constructor 즉 생성자 내부에서 처리할 수 있다.