Java

객체지향이란?(OOP)

DGeon 2023. 7. 26. 14:34
  • 1. 객체지향이란?
    • 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
    • 장점
      • 코드 재사용성
      • 유지보수
    • 단점
      • 개발속도 느림
      • 실행속도 느림
      • 코드의 어려움
  • 2. 객체지향의 4가지 특징
    • 캡슐화
      • 데이터와 코드의 형태를 외부에서 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐 형태로 만드는 방법
      • 접근 제어자(private)사용
      • set/get의 사용
    • 추상화
      • 클래스들의 공통적인 특성(변수, 메소드)들을 묶은 것
    • 상속
      • 부모 클래스에 정의된 변수 및 메서드들을 자식 클래스에서 상속받아 사용하는 것
      • 자식 클래스에서 extends 키워드 사용
    • 다형성
      • 하나의 클래스 내부에 같은 이름으로 여러개 정의 하거나 상위 클래스의 메서드 들을 하위클래스에서 재정의 하여 사용할 수 있는 
      • 오버로딩
        • 하나의 클래스 안에서 같은 이름의 메서드를 여러개 정의 하는 것(시그니처가 다름)
      • 오버라이딩
        • 부모 클래스로부터 상속받은 메서드를 재정의 한 것
  • 3. 객체지향의 5가지 원칙(SOLID)
    • 단일 책임 원칙(SRP)
    • 개방 폐쇄 원칙(OCP)
    • 리스코프 치환 원칙(LSP)
    • 인터페이스 분리 원칙(ISP)
    • 의존관계 역전 원칙(DIP)