세상에 존재하는 물체라는 뜻. 식별이 가능함.
물리적으로 존재하는 자동차, 계산기, 도서관등 과
개념적으로 식별이 가능한 강의, 운동, 배달 주문 등이 있음.
속성(특징)과 행위(행동)를(로) 가지고(구성) 있는데
이때 속성 = 필드, 행위 = 메서드 라고 생각하면 된다.
객체가 자동차라고 생각했을 때 자동차의 회사, 모델, 색상, 가격을 속성, 즉 필드이고 자동차의 기어변속, 라이트, 가속, 경적등이 행위, 메서드라고 한다.
현실 세계에 있는 객체를 소프트웨어의 객체로 설계하는 것을 '객체 모델링'이라고 함.
현실에서 사람이라는 객체와 자동차라는 객체는 서로 행동(행위)를 통해 상호작용을 하며 협력할 수 있음.
사람이 자동차 가속 페달을 밟으면 자동차는 그에 따라 속도를 올리며 앞으로 이동한다.
사람이 자동차 브레이크 페달을 밟으면 자동차는 그에 따라 속도를 줄이고 정지한다.
-> 소프트 웨어에서는
사람 객체가 자동차 객체가 가지고 있는 가속 페달이라는 메서드gasPedal();를 호출한다. 그러면 자동차 객체가 반응해 속도 속성의 값을 증가시킨다.
사람 객체가 자동차 객체가 가지고 있는 브레이크 페달이라는 메서드 breakPedal();을 호출하면 자동차 객체가 이에 반응해 속도 속성 값을 감소시킨다.
또 소프트웨어의 객체들은 메서드를 통해 데이터를 주고 받을 수 있다.
사람 객체가 자동차 객체한테 gasPedal();이라고 메서드를 호출할 때 매개변수로 어떤 값(입력값)을 같이 넣어서 호출.(그 매개변수를 넘겨줄 때는 항상 그 값은 자동차 객체에서 정의한대로 넘겨주게됨) 그러면 자동차 개 체는 그 값이 명세서대로 올바르게 들어왔는지 확인을 하고 맞으면 그 입력값대로 결과물(출력값)을 반환하는데 그의 값을 '리턴값'이라 함.