[CS]OOP

윤재열·2022년 5월 27일
0

CS지식

목록 보기
10/16

각각의 프로그래밍 기법에 대해 설명할 수 있어야 해서 한번 공부해 보았습니다.

특히 OOP는 단골 질문이라 중요합니다.

OOP(객체지향 프로그래밍)

  • 객체지향 프로그래밍은 컴퓨터 프로그래밍 패러다임(견해,사고법)의 하나로, 프로그래밍에서 필요한 데이터를 추상화 시켜서 상태(속성,어트리뷰트)와 행위(메서드)를 가진 객체로 만들고, 그 객체간의 상호작용을 통해 로직을 구성하는 방법.

장점

  • 다른 클래스를 가져와 사용할 수 있습니다.
  • 상속받을 수 있어 코드의 재사용성 증가 절차지향보다 유지보수가 간단합니다.

단점

  • 처리속도가 상대적으로 느립니다.
  • 객체가 많으면 용량이 커집니다.
  • 설계시 많은 노력과 시간이 필요합니다.

6가지 키워드

  • 클래스 : 현실 세계의 객체를 추상화 시켜, 속성과 메서드로 정의한 것입니다.
  • 인스턴스 : 클래스에서 정의한 것을 토대로 만든 실제 메모리상에 할당된 것, 실제 데이터
  • 추상화 : 객체지향 관점에서 클래스를 정의하는 것, 불필요한 정보 외 중요한정보만 표현함으로써 공통의 속성과 기능을 묶어 이름을 붙이는 것 입니다.
  • 캡슐화 : 코드를 수정없이 재활용 하는 것을 목적으로 합니다. 클래스라는 캡슐에 기능과 특성을 담아 묶습니다.
  • 상속 : 클래스로부터 속성과 메서드를 물려받는 것을 말합니다.
    • 다른 클래스를 가져와서 수정할 일이 있다면, 그 클래스를 직접 수정하는 대신 상속을 받아 변경하고자 하는 부분만 변경합니다.
  • 다형성 : 하나의 변수명이나 함수명이 상황에 따라 다르게 해석될 수 있습니다.
    • 대표적인 다형성이 자주쓰이는 오버라이딩과 오버로딩

OOP의 5가지 법칙

SOLID 5가지 원칙

profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글