OOP란?

가오리·2022년 11월 6일
0

let me borrow your CS

목록 보기
4/25
post-thumbnail

OOP: Object-Oriented Programming

  • 현실 세계의 사물 및 개념들을 객체로 보고 그 객체들을 조립하여 프로그래밍 하는 기법
  • 장점: 사람의 관점에서 프로그램을 이해하고 파악하기 쉬우며 재사용성, 확장성, 융통성이 높다
  • 단점: 설계에 많은 시간이 투자되고 설계 실패 시 다시 처음부터 시작해야 한다


OOP 특징

  1. 추상화

    객체의 공통된 속성들 중 필요한 부분을 포착해서 클래스로 정의하는 설계 기법
    구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 집합으로 다루는 것

  2. 캡슐화

    외부에 노출할 필요가 없는 정보들은 은닉(: 정보은닉)
    필요한 정보만 보여주게끔 설계해야 한다

  3. 상속화

    부모 클래스가 자손 클래스에게 속성을 물려주는 것
    코드의 재사용

  4. 다형화

    overriding: 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용
    overloading: 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술

    참고

    구분오버로딩오버라이딩
    메서드 이름동일동일
    매개변수, 타입다름동일
    리턴 타입동일하거나 다르거나동일



OOP의 5가지 설계 원칙

SRP: Single Responsibility Principle, 단일 책임 원칙
→ 클래스는 단 하나의 목적을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유여야 한다

OCP: Open Close Principle, 개방 폐쇄 원칙
→ 클래스는 확장에는 열려 있고 변경에는 닫혀 있어야 한다

LSP: Liskov Substitution Principle, 리스코프 치환 원칙
→ 상위 타입의 객체를 하위 타입으로 바구어도 프로그램은 일관되게 동작해야 한다

ISP: Interface Segregation Principle, 인터페이스 분리 원칙
→ 클라이언트는 이용하지 않는 메소드에 의존하지 않도록 인터페이스를 분리해야 한다

DIP: Dependency Inversion Principle, 의존 역전 원칙
→ 클라이언트는 추상화(인터페이스)에 의존해야하며 구체화(구현된 클래스)에 의존해선 안된다


참고 자료

05. 기술면접 - 자바 - OOP 의 4가지 특징과 OOP 5가지 설계 원칙

[기술면접] CS 기술면접 질문 - 프로그래밍 공통 (1/8)

profile
가오리의 코딩일기

0개의 댓글