해결된 질문
작성
·
49
답변 2
0
객체는 해당 챕터하는 내내 나오는 개념입니다.
프로그래밍 언어에서 제공하는 기본 자료형(숫자, 문자, 불린값 등)을 하나의 뭉텅이로 정의해서,
현실에 있는 물건이나 개념의 이름을 지은 다음에 변수화하면 그게 객체입니다.
배열..도 배열을 정의하는 상위 클래스가 있어서 파생된 객체(object)입니다. 배열이 객체(object)인 건 맞는데, 객체를 배열이라고 하면 말에 어폐가 생깁니다.
객체는 정말로 글자 그대로 속성과 행위를 가진 실체로 해석하면 끝입니다.
여러 자료형과 함수(메서드라고 부름)를 뭉쳐서 하나의 단위로 나타낸 것입니다. 그게 전부입니다.
예를 들어 지금 제 앞에 있는 키보드를 예시로 들어보겠습니다. 키보드도 객체죠. 현실의 물건이기 때문입니다. 질문자분은 이제부터 키보드를 저장/삭제하고 재고를 관리하는 프로그램을 만들어야 합니다.
키보드를 저장하는 View(웹 페이지 겉단)가 있을 것이고, 저장되는 데이터베이스가 있습니다. 어딘가에 저장해놔야 다른 분들에게 보여줄 수 있으니까요.
어떤 형태로 저장하실 건가요?
숫자? 키보드는 숫자가 아닙니다.
문자? 키보드는 문자도 아니죠.
키보드에 필요한 속성들을 우리가 알고 있는 자료형으로 바꿉니다.
키캡의 갯수는 숫자로 표기하면 좋겠네요. 이름은 문자로 하는 것이 좋을 것 같고요.
키보드에 불이 들어올 수도 있으니까 불들어오기()라는 함수도 함께 데이터 형태로 저장해두면 좋겠네요.
이렇게 정의"만" 해두는 것이 클래스입니다.
객체는 저것을 실체화하면 객체입니다.
이제 키보드1 이라는 변수로 생성해볼까요.
지금 클래스에는 2개의 멤버변수(키 개수, 이름)와 1개의 메서드(불들어오기())가 있습니다.
이걸 만들면서 값을 넣는 메서드가 생성자이죠.
키보드자료형 키보드1 = new 키보드자료형(87, "레이니87"); 이렇게 하면 키보드1에는 키보드자료형이라는 타입의 키보드1 객체가 생긴 것입니다.
객체의 정의를 너무 신경쓰실 필요 없습니다, 이게 끝입니다.
프로그래밍 언어에서 제공하는 기초 자료형으로 현실의 물건이나 개념을 표현하면 그게 객체입니다.
감사합니다.. 뭔가 이해가 될거 같으면서도 안되는거 같은데, 한번만 더 봐주시면 감사하겠습니다..
예시를 전 게임으로 들어보겠습니다.
몬스터라는 클래스가 있고, 몬스터의 체력, 능력치, 스폰지역(속성), 몬스터의 행동 및 스킬(행위)를 지정했습니다. -> 여기까지 객체
해당 클래스를 여러번 호출하여 몬스터를 여러마리 생성했습니다 -> 여기서부터 인스턴스
이렇게 이해한게 옳은지 한번만 더 봐주시면 감사하겠습니다.. 아무래도 CPP를 공부했었긴 했는데.. 갑자기 관련 이론을 보니까 햇갈려서 이렇게 질문드리게 되었습니다 ㅠ
--------------------------------------------------------------------
강의 마지막에 다시 설명을 해두셨네요! 제가 너무 이르게 질문한거 같았습니다 명확하게 이해했습니다! 친절하게 설명해주셔서 감사합니다!
클래스는 객체 아닙니다.
정확히는
몬스터라는 클래스가 있고, 몬스터의 체력, 능력치, 스폰지역(속성), 몬스터의 행동 및 스킬(행위)를 지정했습니다. -> 클래스
해당 클래스를 여러번 호출하여 몬스터를 여러마리 생성했습니다 -> 인스턴스입니다.
객체랑 인스턴스 똑같은 개념으로 쓰셔도 됩니다.
객체는 보통 단위로 일컫고, 인스턴스가 정확한 말입니다.
정의하면 클래스이고, 태어나면 인스턴스로 외우시면 됩니다.
실제로는 객체나 인스턴스가 혼용해서 많이 사용해도 그러려니 합니다.
0
안녕하세요, 인프런 AI 인턴입니다. nokomis5934님.
클래스와 객체에 관한 개념은 프로그래밍의 기초 단계에서 중요한 부분입니다. Java와 같은 객체지향 프로그래밍 언어에서는 클래스를 사용해 객체를 생성하고, 이 객체를 통해 프로그램을 운영합니다. 아래에 관련된 내용을 이해하는 데 도움이 될 만한 내용을 설명하겠습니다.
클래스(Class): 클래스는 객체를 만들기 위한 설계도입니다. 즉, 특정 객체의 형태와 동작을 미리 설계하는 템플릿이라고 할 수 있습니다. 예를 들어, 자동차라는 클래스는 모든 자동차가 가져야 할 공통 속성(예: 색상, 모델)과 동작(예: 가속, 브레이크)을 정의합니다.
객체(Object): 객체는 클래스를 실제로 구현한 실체입니다. 클래스의 인스턴스(instance)라고도 불리며, 클래스에서 정의한 속성과 행위를 실제로 가지고 있는 개별적인 오브젝트입니다. 앞서 예로 든 자동차 클래스를 기반으로 하여 특정 차량인 ‘빨간색 스포츠카’는 하나의 객체가 될 수 있습니다.
클래스와 객체의 구분은 기능의 추상화와 세부 구현의 차이에 있습니다. 클래스는 여러 개의 객체를 생성할 수 있으며, 각각의 객체는 클래스의 고유한 속성과 메서드를 가집니다.
아래 링크들은 클래스와 객체에 대한 더 깊이 있는 이해와 관련된 질문을 다루고 있습니다. 이 자료들을 참조하여 보다 명확한 개념을 잡는데 도움이 되실 것입니다:
자바의 클래스와 객체 차이: 이 질문에서는 클래스와 객체의 차이점에 대해 심도 깊게 다루고 있습니다.
자바 객체 생명주기 깊이 파기: 객체의 생성 및 소멸 시점을 이해하는 데 도움이 되는 자료입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다 선생님.
객체란, 클래스의 인스턴스나 배열을 말한다. 변수, 자료 구조, 함수, 메서드, 식별자에 의해 참조된 메모리 상의 값 등을 실세계에 존재하거나 생각할 수 있는 것으로 속성과 기능을 가지게 변수화 하는 것을 말한다.
선생님이 말씀해 주신 부분과 개인적으로 조사해 알아본 부분으로 이렇게 정의를 하였는데 한번 검토해주실 수 있으신가요?