객체지향언어 특징

이하연·2021년 8월 18일
0

[oop] 객체지향

목록 보기
2/7

객체지향언어의 특징으로는 크게 캡슐화, 상속, 추상화, 다형성 크게 4가지가 있습니다.


캡슐화 Encapsulation

  • 캡슐화는 변수와 메소드를 하나로 묶은 것으로 객체 스스로가 자신의 상태를 책임지게 하여, 해당 객체의 역할 수행에 집중할 수 있도록 자율성을 높이는 특징을 지닙니다.
  • 프로그램 설계시 높은 응집도, 낮은 결합도를 유지해야 요구사항을 변경하기 쉬운데, 이 캡슐화는 낮은 결합도를 유지할 수 있도록 도와주는 객체지향 설계의 특징입니다.
  • 캡슐화의 2가지 관점
    • 상태-행위 캡슐화( 데이터 캡슐화) - 객체는 상태와 행동을 하나의 단위로 묶는 자율적 실체
    • 사적인 비밀의 캡슐화( 은닉화 ) - 외부에서 객체의 상태를 변경하는 것을 막기 위한 은닉화 ( 접근 제어자, setter, getter )
      • 데이터를 외부에서 직접 접근하지 않고 함수를 통해서만 접근
        • 예 ) public, private, protected

상속 Inheritance

  • 상속은 자식 클래스가 부모 클래스를 물려받고 기능을 추가하여 확장하는 개념입니다.
  • 부모 클래스 ( 슈퍼 클래스 ), 자식 클래스 ( 서브 클래스 )
  • 서브 클래스는 슈퍼 클래스의 속성을 물려받아 여러 클래스에서 중복되는 속성과 기능을 재사용함으로써, 코드 작성에 드는 시간과 비용을 높이는 효과가 있습니다.
  • 상속은 캡슐화를 유지해야 합니다.

추상화 Abstraction

  • 추상화는 인터페이스로 클래스들의 공통적인 특성( 변수, 메소드 )들을 묶어 표현하는 것입니다.
  • 예 ) 추상 메소드, 인터페이스

다형성 Polymorphism

  • 다형성은 어떤 변수, 메소드가 상황에 따라 다른 결과를 나타내는 것입니다.

  • 따라서 동일 요청에 대해 서로 다른 방식으로 응답할 수 있는 특징이 있습니다.

  • 오버로딩 Overloading

    • 동일한 메소드가 매개변수 타입, 개수 차이에 따라 다르게 동작
    • 하나의 클래스에서 메소드의 이름이 같지만, 파라미터가 다른 것
    • 서로 다르게 동작하는 메소드를 여러개 만들어야 할 경우 파라미터를 다르게 하여 표현할 수 있습니다.
  • 오버라이딩 Overriding

    부모 클래스의 메소드를 자식 클래스의 용도에 맞게 재정의하여 코드의 재사용성을 높이는 것 ( 상속받은 동일한 메소드 재정의 )

0개의 댓글