신입 개발자 교육과정을 듣기 전, 기본 지식 정도를 헤아리기 위해 몇몇의 질문이 적힌 설문지를 받았다. 가장 첫 질문이 '클래스와 객체의 차이에 대해 설명하라.'였다.
보고 띠용👀했다. 나... 모르네? 😅
'이것도 모르는데 객체지향 언어인 자바를 사용한다고 할 수 있나?' 자괴감이 들었다. 자괴감이 든 것도 잠시 계속 해당 질문에 대한 답을 찾으려고 하지 않았다. 이후 코드 리뷰, 스터디 등에서 계속해서 해당 용어에 대한 코멘트와 개념을 가지고 이해해야 하는 내용들이 많이 등장했기에... 이제야 정리해보고자 한다.
이번 기회를 통해 쉽게 휩쓸리는 모래성을 쌓는 것이 아닌, 견고하게 콘크리트성을 쌓아보고자 한다 🏰
클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다. 클래스의 인스턴스 = 객체
정리해보자면,
클래스로부터 객체가 생성된다는 것을 알 수 있다. 클래스는 특징을 갖고 있는 애라고 할 수 있다. 예를 들어, 사람 정보를 나타내려면 이름, 성별, 나이 등이 필요하다. 이렇게 구분할 수 있는 큰 범위의 특성들을 갖고 있는 사람 집합을 클래스라고 한다. 객체는 사람이라는 큰 덩어리가 있을 때, '이름은 0JUUU, 성별은 여자, 나이는 10세' 이런 식으로 구체적인 상태를 갖고 있는 것을 말한다.
두서없이 작성한 글이다. 차차 보완해나가야 한다. 현재는 맞다고 생각한 개념이 틀릴 수도 있다.
또한, 클래스에 대해 조영호님과 부가옌코...? 님의 견해가 살짝 다른 것처럼 정답은 없다고 생각한다.