1. 객체 (Object)
ㅇ [일반]
- 주체 (主體)에 대응되는 객체 (客體)
. 처리의 대상이 되는 목적물
- 특징짓고 좁히면서, 실체화시킨 것
. 실존하는 것일 수도, 난해한 개념적인 것일 수도 있음
. 하나의 개념화, 추상화로 문제영역에서 뚜렷한 영역과 의미를 가지는 것
ㅇ [공학]
- 스스로 제구실을 하는 부품과 같은 어떤 존재
. 속성을 가지고 특정한 작업을 수행할 수 있도록 설계된 것
ㅇ [객체지향]
- `속성`과 이들 속성을 다루는데 필요한 `행위`를 함께 캡슐화한 객체를 중심으로,
- 이들 간의 관계성, 상속성, 메세지 주고받기 등이 가능
2. [프로그래밍] 객체란?
ㅇ 객체의 `의미` : `속성(자료)` 및 `그 자료에 대한 연산(방법)`을 함께 묶어둔 것
ㅇ 객체의 `특징`
- 이름을 붙여 특징지울 수 있음 (thing, 즉, 세상의 모든 것)
. 자기자신을 포함하여 서로 연관된 변수와 함수의 데이터 묶음
- 어떤 정보를 표현하기 위해 기억장소가 할당됨
. 객체는 메모리 상에 있게되고, 프로그래밍 조작의 대상이 되는 것임
ㅇ 객체의 `모형화(분류)` : 클래스
- 객체를 그룹화시킬 수 있는 것
. 객체들의 속성을 기술하는 구조의 명칭으로써, 주로 객체에 대한 정의를 의미
. 즉, 같은 유형의 객체들은 공통 클래스를 사용하여 정의됨
ㅇ 객체의 `구성` : 프로퍼티 + 메소드
- 객체 = 프로퍼티 (변수,속성,성질,상태) + 메소드 (처리방법,행동)
= 데이터 멤버 + 멤버 함수
. Property/Attribute (속성)
.. 데이타 그 자체 및 특징지우는 속성,성질들의 집합
. Method (방법)
.. Property 에 들어있는 데이타로 어떤 작업을 수행하는 것
.. 다른 프로그래밍 언어에서의 함수와 유사
.. 프로퍼티 값이 함수인 프로퍼티가 바로 메소드임
※ 결국, Property 및 Method에 의해 정의되는 객체를 사용하여
- 실체를 표현하게됨
ㅇ 객체의 `구현` : 인스턴스
- 그러한 구조를 갖는 객체가 구체적으로 실체화 된 것
. 즉, 객체는 원본이고, 인스턴스는 구현된 복사본 이라고 할 수 있음
.. (객체의 복제본을 만드는 것)
ㅇ 객체 간의 `통신` : 메세지
- `조작명` 및 그 `인수`가 지정됨
3. [프로그래밍] 객체지향 프로그래밍 (OOP)
ㅇ 프로그램 상에 취급하는 모든 대상을 객체로 생각하고,
- 그렇게 추상화된 객체를 중심으로 코드를 작성하며,
- 이들 객체들을 조립해가며 프로그램을 짜는 방법
ㅇ 프로그램 내에서, 객체는,
- 문자열,숫자,배열 처럼 값으로 취급되기도 하며,
- 변수에 담거나, 인수로 전달되거나, 반환값으로 나오기도 하며,
- 객체 고유의 기능(동작,연산)도 가능 함