객체지향 프로그래밍

Lee·2023년 3월 27일
0

면접 스터디

목록 보기
1/18

정의

컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 객체들의 모임으로 바라보고자 하는 것

특징

1. 추상화

  • 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 것을 의미
  • 객체 지향적 관점에서 클래스를 정의하는 것이 추상화의 대표적인 예시

2. 다형성

  • 같은 이름을 가진 메소드라도 각 하위 클래스의 상황에 맞게 다르게 구현될 수 있게 하는 것을 말한다.
  • 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있다는 것이다.
  • 오버로딩, 오버라이딩이 있다.

3. 상속

  • 상위 클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게 하고 기능의 일부분을 변경해야 할 경우 하위 클래스에서 해당 기능만 다시 수정하여 사용할 수 있게 하는 것이다.
  • 복잡도를 줄이고 중복을 없애기 위함

4. 캡슐화

  • 하나의 객체에 대해 그 객체가 특정한 목적을 위해 필요한 변수나 메소드를 캡슐로 만들어 외부로부터 보호.
  • 접근 제한자를 사용해 필요한 기능만 외부로 노출되도록 하고 그렇지 않은 기능은 외부로부터 보호한다.
  • 이를 통해 데이터 보호 및 데이터 은닉 기능을 제공할 수 있다.

객체지향 5원칙

1. SRP(Single Responsiblility Principle)

  • 객체는 오로지 하나의 책임만 갖는다.

2. OCP(Open Closed Principle)

  • 확장에 열려있고 수정에 닫혀 있어야 한다.

3. LSP(Liskov Substitution Principle)

  • 하위 타입은 상위 타입을 대체할 수 있어야 한다.

4. ISP(Interface Segregation Principle)

  • 클라이언트의 목적과 용도에 맞는 인터페이스를 제공해야 한다.

5. DIP(Dependency Inversion Principle)

  • 고수준 모듈은 저수준 모듈을 의존하지 않아야 한다.
profile
발전하고 싶은 백엔드 개발자

0개의 댓글

관련 채용 정보