OOP의 4가지 특징

y0ung·2021년 4월 21일
2
post-thumbnail

OOP?

Object-Oriented Programming ?

  • 객체 지향 프로그래밍 방식 이다.
  • 프로그램을 명령어의 목록이 아닌, 독립된 "객체"들의 모임으로 바라본다.

OOP를 사용하는 이유는?

가장큰 이유는 재사용성의 증가 이다.
기존에 만들었던 내용을 쉽게 상속, 다형성 등을 이용해서 재사용이 가능하다.

또한 개발 자의 실수로 인한 취약점을 줄여준다. 취약점이란 급하게 개발을 하면서 코드에 오류가 발생할수 있다. 이럴경우 새로운 패치를 해야 하고 손실을 가져오게 된다.
하지만 생성자, 소멸자, 접근제어 [ Public, Private, Protected ]와 같은 내용은 이러한 오류를 잡아준다.

OOP의 4가지 특징

1. 추상화(Abstraction)

  • 인터페이스로 클래스들의 공통적인 특성(변수, 메소드)들을 묶어 표현하는 것인데,
    쉽게 말해 공통적인 속성이나 기능을 묶어서 이름을 붙이는 것이다.
    (예를 들면 가,나,다 를 한글로 묶는것이다)

2. 캡슐화(Encapsulation)

크게 두가지의 특징이 있다.

  • 첫번째, 특정 역할을 하는 속성(멤버변수), 기능(메서드)을 객체로 묶는다.

  • 두번째, 접근제어자와 같은 기능들을 통해 외부접근으로 부터 데이터를 보호하고 정보를 은닉한다.

    public, private, protected
    public: 클래스 외부에서 접근가능
    private: 클래스 내부에서만 접근 가능
    protected : 상속받은 자식 클래스에서만 접근 가능

3. 상속성(Ingeritance)

  • 부모 클래스의 속성과 기능을 상속받아 동일하게 사용
  • 기능의 일부분을 변경하는 경우 자식 클래스에서 상속받아 수정 및 사용
  • 상속은 캡슐화를 유지, 클래스의 재사용이 용이하도록 해 준다.

4. 다형성(Polymorphism)

  • 동일 요청에 대해 서로 다른 방식으로 응답할 수 있도록 만드는 것
    (예를 들면 사람의 말투 야. 야! 야~는 같은 '야'이지만 다른 의미를 전달한다)

오버로딩(Overloading)

  • 하나의 함수에 여러개의 기능을 부여하는 것.
  • 조건
    • 함수명은 동일해야함
    • 넘겨주는 인자[메개변수]는 달라야함
    • 리턴 타입은 상관 없음

오버라이딩(Overriding)

  • 부모 클래스의 메소드를 자식 클래스의 용도에 맞게 재정의하여 코드의 재사용성을 높임
  • 조건
    • 함수명 동일해야함
    • 넘겨주는 인자 같아야함
    • 리턴 타입 같아야함

OOP의 장단점

장점

  • 코드의 재사용성이 높아진다.
  • 유지보수가 쉽다
  • 코드가 간결해진다.

단점

  • 처리 시간이 비교적 오래 걸린다.
  • 프로그램을 설계할 때 많은 고민과 시간을 투자해야 한다.

참조

profile
어제보다는 오늘 더 나은

0개의 댓글