CS [개발 지식] 객체 지향 프로그래밍(OOP)이란?

신재원·2023년 2월 2일
0

CS [개발지식]

목록 보기
6/9

객체 지향 프로그래밍이란?

A : 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 "객체"를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
객체 지향이란?

📌 객체 지향 프로그래밍의 장점

  • 코드의 재사용이 용이
    : 상속을 통해 확장해서 사용가능하다.
  • 유지보수가 쉽다.
    : 수정 해야할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정하면된다.
  • 대형 프로젝트에 적합하다
    : 클래스 단위로 모듈화 하여 개발할수 있음으로 분담하기 쉽다.

📌 객체 지향 프로그래밍의 단점

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

✔ 클래스와 인스턴스(객체)는 무엇인가 ?

클래스

: 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 "틀" 이다

객체

: 클래스에서 정의한 것을 토대로 실제 메모리에 할당된것으로 프로그램에서 사용되는 데이터이다.

추상화란?

  • 간단히 말해서 "공통의" 속성이나 기능을 묶어 이름을 붙이는 것이다.

캡슐화, 상속이란?

상속

: 부모 클래스의 속성과 기능을 그대로 이어받아 사용할수 있게하고, 기능의 일부분을 변경해야 할 경우 상속받은 자식 클래스에서 해당 기능만 다시 수정 (정의)하여 사용할수 있게하는것이다. (다중상속은 불가능)

다형성

: 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될수있다

  • 오버라이딩 : 부모클래스의 메서드와 같은 이름, "!!매개변수"를 재정의하는것
  • 오버로딩 : 같은 이름의 함수를 여러개 정의하고, 매개변수의 타입과 개수를 다르게 하여 다르게 호출하는것이다.

오버로딩과 오버라이딩

getter, setter 사용이유

  • 메서드 (get, set) 를 통해 접근하기때문에, 메서드 안에서 매개변수같이 들어오는 값을 바로 저장하는 게 아닌,한번 검증하고 처리할 수 있도록 할 수 있기 때문에 데이터의 무결성이 지켜진다.
    • 무결성
      : 데이터의 정확성과 일관성을 유지하고 보증하는 것을 말한다.

ex ) setter로 범위가 넘은 정수가 입력되었을 경우 처리를 하고나서 예외처리를 해버릴수 있다.

📌 객체 지향의 설계 원칙 (SOLID)

SOLID

0개의 댓글