현실에 존재하는 사물을 그대로 모델링하여, 이들의 행위와 속성을 정의
객체가 중심이 되어 실제 사물이 동작하는 방식으로 설계하기 시작함
절차지향보다 조금 더 편리한 설계
사물 → 객체 Object
사물이 하는 → 행위 Method
사물이 가지는 속성 → 변수 Variable
속성 1 → 자동차 이름, 자동차 번호, 등록년월, 모델명 등
속성 2 → 아이디, 패스워드, 이메일, 전화번호 등
속성 3 → 계좌번호, 잔고, 예치금, 이율 등
행위 1 → 주행거리, 연비계산, 번호교체, 등록증갱신 등
행위 2 → 계정등록, 계정삭제, 비밀번호 변경, 이메일 변경 등
행위 3 → 잔고계산, 이율계산, 입금기록, 출금기록
객체의 상태 정보 저장 및 유지하기위해 이런 속성들은 변수로 정의되어야 함
속성값 변경 시 객체의 상태로 변경되어야 함
객체는 기능을 제공하기위해 메소드로 제공함
캡슐화 연관 → 외부로부터 직접 속성에 접근하여 변경하는 것이 아닌, 객체가 제공하는 메서드로 기능이 제공 되어야 함
객체는 고유한 식별자를 가져야 함
카드번호, 계좌번호, 자동차번호 같은 속성을 통해 각각의 고유한 값을 줄 수 있음
DB의 UK, PK로도 작성이 가능
실제로 사물이 존재하고, 이를 클래스로 정의한 객체
개발할 웹 시스템 중 Service에 해당됨
비즈니스 로직을 처리하는 부분임
여러 객체를 서로 상호작용하도록 하며, 객체가 제공하는 오퍼레이션 메서드를 통해 객체의 속성을 변경시킴
ex. ATM 시스템 → 사용자(Object)의 Action에 따라, 계좌(Object)의 잔고의 속성을 변경하는, 입출금 로직 처리