자바와 객체지향

캡슐화, 은닉화

객체지향 사고방식

복잡한 시스템을 만들기 위해 반드시 알아야 하는 몇 가지 개념

  1. 클래스로 만들어야 하는 대상을 정확히 파악할 것.
  2. 객체와 객체 간의 의사소통 관계를 정확히 파악하고 설계할 수 있을 것.
  3. 하나의 클래스들이 나중에 재사용이 최대한 가능하도록 설계 시 반영할 수 있을 것
  4. 고객이 진정으로 원하는 것이 어떤 것인지 파악하는 능력.

=> 즉 자신이 무엇을 어떻게 만들어야 할지 정확히 알고 있어야 한다.

클래스 구성의 가장 중요한 원칙

  1. 고객*이 관심 두는 데이터는 클래스로
  2. 연관된 데이터(도표)는 클래스로
  3. 데이터가 주가 되는 객체와 그 데이터 객체들을 가지고 처리하는 객체들 고려

*고객은 제품을 구매하는 고객뿐만 아니라 동료직원, 회사 등 넓은 범위를 의미한다.

객체지향에서 중요한 관점

프로그램을 만드는 순서 정리

  1. 가장 중요한 데이터를 객체로 보관하기 위해서 클래스를 작성한다.

이런 데이터의 특징

  1. 비즈니스 객체(서비스) 설계

비즈니스 객체의 특징

  1. 화면을 담당하는 별도의 객체(컨트롤러) 설계
  2. 데이터를 보관하고 처리하는 객체(DAO) 설계

즉 데이터를 클래스로 정의하고, 데이터와 연관된 다른 역할의 클래스들을 설계하고 구현한다. 각 역할에는 비즈니스 로직을 구현하는 역할, 데이터를 받아서 처리하는 역할, 처리된 데이터를 받아 화면에 보여주는 역할 등이 있을 수 있다.

static

다형성

하나의 객체를 여러 타입으로 선언할 수 있음. java에서 다형성은 상속과 interface 구현을 통해 이루어진다.

interface SmartPhone {}
class iPhone implements SmartPhone{}
class GalaxyPhone implements SmartPhone{}

SmartPhone phone = new iPhone();
SmartPhone phone2 = new GalaxyPhone();

interface

그 외