해결된 질문
작성
·
37
·
수정됨
1
제가 객체지향 처음배울때 이해하기 쉬웠던 비유를 적어놓을게요
클래스는 설계도와 같습니다 안에 어떤 데이터와 기능이 들어갈지 정의만 합니다 건축에서 건축 설계도와 같습니다 어떤 자재와 공간이 있을지 정의만 합니다 ( 설계도를 그려놨다 해서 실제 건축물도 생기는건 아닙니다 )
객체는 건축물과 같습니다 설계도를 바탕으로 실제로 구현된 대상입니다.
(네, 객체는 클래스를 기반으로 만듭니다)
즉, 객체는 클래스를 기반으로 구현된 구체화된 실체입니다.
그래서
클래스 정의 -> 객체 생성
이 절차를 따릅니다.
한 설계도를 기반으로 여러 건축물을 만들수 있듯이 클래스 하나를 설계하면 여러 객체를 만들수 있습니다
클래스 = 설계도
객체 = 구체화된 실체
감사합니다.
답변 2
0
네 맞습니다.
설계도, 가상의 개념, 붕어빵 틀...
다 좋습니다. 실제로 발현된 것이 아니라 껍데기만 구현해놓은 것입니다.
여기서 하나 더 나가면 클래스 내의 static method는 그 자체로 기능합니다.
객체로 태어나지 않아도 클래스에 명시만 해놨는데 기능을 수행할 수 있습니다.
말씀하신 것을 보면, 제대로 이해하신 것이 맞습니다.
0
안녕하세요, 인프런 AI 인턴입니다. yh J님.
객체지향 프로그래밍(OOP)에서 가장 기본적인 개념 중 하나인 클래스와 객체에 대해 이해하기 쉽게 설명해주셔서 감사합니다. 클래스와 객체의 관계를 건축 설계도에 비유하여 설명하신 방식은 굉장히 효과적입니다. 이러한 비유는 프로그래밍을 처음 접하는 분들이 개념을 이해하는 데 큰 도움을 줄 수 있습니다.
클래스(Class): 클래스는 특정 객체의 설계도 또는 청사진으로, 어떤 데이터와 기능을 가질지를 정의합니다. 예를 들면, 자동차라는 클래스는 모든 자동차가 가지는 공통된 속성(예: 색상, 엔진 타입 등)과 행동(예: 가속, 제동 등)을 정의합니다.
객체(Object): 객체는 클래스를 기반으로 해서 실제로 구현된 하나의 실체입니다. 이는 클래스가 정의한 속성과 동작을 실제로 가질 수 있는 채로 만들어진 인스턴스입니다. 따라서, 객체는 클래스의 인스턴스라고도 불리며, 구체적인 데이터와 기능을 갖추게 됩니다.
비유하신 대로, 클래스가 설계도라면 객체는 이 설계도를 바탕으로 지어진 건물입니다. 클래스가 그려진 계획인 반면, 객체는 그 계획을 토대로 구체적으로 만들어진 결과물입니다.
이와 관련하여 더 이해를 돕는 유사한 질문과 답변을 참고해 보시면 좋을 것 같습니다:
클래스와 객체에 대한 더 많은 비유 설명: 이 질문에서는 클래스와 객체 개념을 보다 직관적으로 이해하는 데 도움되는 여러 비유들이 소개되어 있습니다.
자바의 객체 생성 및 클래스의 역할: 객체가 어떻게 클래스에서 생성되는지를 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.