Java & Spring/Java

8일차 - Java강의(객체지향 ☆)

DJ.Kang 2024. 7. 24. 21:31

◇ 클래스

- 객체란?

  • 객체는 세상에 존재하는 물체를 뜻하며 식별이 가능한 것을 의미
  • 객체는 속성과 행위로 구성
  • Java에서는 이러한 속성과 행위필드와 메서드로 정의하여 구현
    ※ 이처럼 현실 세계에 있는 객체를 소프트웨어의 객체로 설계하는 것을 ‘객체 모델링’이라함

- 객체 간의 관계

  1. 사용관계 : '사람 객체'가 '자동차 객체' 를 사용
  2. 포함관계 : '엔진 객체', '타이어 객체', '핸들 객체'는 '자동차 객체'에 포함
  3. 상속관계 : '자동차 객체'는 '기계 객체'를 상속받음

- 객체지향 프로그래밍의 특징

  1. 캡슐화
    • 필드와 메서드를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것
    • 외부 객체에서는 캡슐화 된 객체의 내부 구조를 알 수 없기 때문에 노출시켜준 필드 혹은 메서드를 통해
      접근할 수 있다.
    • 필드와 메서드를 캡슐화하여 숨기는 이뉴는 외부 객체에서 해당 필드와 메서드를 잘못 사용하여 객체가
      변화하지 않게 하기 위해서다.
    • Java에서는 캡슐화된 객체의 필드와 메서드를 노출시킬지 감출 지 결장하기 위해 접근 제어자를 사용한다.
  2. 상속
    • 객체지향 프로그래밍에는 '부모 객체'와 '자식 객체'가 존재한다.
    • '부모 객체' 는 가지고 있는 필드와 메서드를 자식 객체에 상속해 '자식 객체'가 사용 할 수 있도록 만들 수 있다.
    • 상속이 필요한 이유는 객체 간의 구조 파악, 일관성 유지, 코드 중복 감소, 코드 재사용성 증가가 있다.
  3. 다형성
    • 객체가 연산을 수행 할 때 하나의 행위에 대해 각 객체가 가지고 있는
      고유한 특성에 따라 여러 가지 형태로 재구성되는 것을 의미
  4. 추상화
    • 객체에서 공통된 부분으로 모아 상위 개념으로 새롭게 선언하는 것
    • 공통적이고 중요한 것들을 모아 객체를 모델링
    • ex) 모든 자동차마다 가지고있는 엔진, 타이어, 핸들등의 객체를 모아 자동차 객체를 모델링