[ CS ] OOP ( Object-Oriented Programming )

이하나·2022년 12월 5일
0

CS STUDY

목록 보기
2/5

[1] 객체 지향 프로그래밍

프로그램을 여러개의 독립된 객체의 모임으로 보고 각 객체를 유기적으로 연결하여 프로그래밍

[2] OOP 구성

  • CLASS ( 클래스 )

    속성과 행위로 구성되어 외부와 독립적으로 디자인된 사용자 정의 데이터형

  • OBJECT ( 객체 )

    클래스의 인스턴스
    실제 메모리에 할당되어 고유의 속성을 가지고 클래스에 정의된 행위 ( 메소드 ) 를 수행

  • METHOD ( 메소드 )

    클래스로부터 생성된 객체를 서브루틴 형태로 조작할 수 있도록 하는 클래스에 정의된 함수

[3] OOP 특징

  • 자료 추상화

    어떻게 구현되는지는 숨기고 무엇인지만 정의하여 표현함으로 프로그램을 간단하게 한다.
    자료 추상화를 통해 정의된 자료형을 추상자료형이라고 한다.
    OOP에서의 클래스는 자료 추상화를 통해 정의 된다.

  • 상속

    상속한 클래스 = 부모 클래스, 상위 클래스
    상속 받은 클래스 = 자식 클래스, 하위 클래스
    상위 클래스의 속성과 연산 ( 메소드 ) 를 이용할 수 있도록 하는 기능

  • 다중 상속

    2개 이상의 클래스를 상속받는 기능

  • 다형성

    한 가지 이름에 여러 개념이 정의 되는 것

    • 오버라이딩
      : 부모 클래스에 있는 메소드와 같은 이름, 매개변수를 받지만 기능은 다르게 자식 클래스에서 재정의 하는 것
    • 오버로딩
      : 같은 이름을 갖는 여러 요소가 각자 주어지는 매개변수의 종류나 수에 따라 다른 기능을 하도록 하는 것
  • 동적 바인딩

    변수의 자료형이나 호출되는 함수가 결정되는 것을 바인딩이라고 하는데,
    컴파일 시점에 변수의 자료형이 이미 정해지고 정적 바인딩과 달리
    동적 바인딩은 실행하고 입력이 들어오는 그때 변수의 자료형을 정한다.

[4] OOP 장단점

  • 장점
    • 코드의 재사용이 용이하며 이전 클래스를 상속 받아 확장하여 사용도 가능하다.
    • 수정 시 특정 클래스의 속성이나 메소드의 한 부분만을 수정하면 되기에 비교적 유지보수가 쉬운 편이다.
    • 대형 프로젝트 진행 시에 클래스 단위로 개발이 가능 하기에 업무 분담이 편하다.
  • 단점
    • 실행 속도가 상대적으로 느리다.
    • 객체가 많을 수록 용량이 커진다.
    • 객체가 처리해야 하는 것에 이해가 필요하기에 설계시에 많은 시간과 노력이 필요하다.

[5] 참고한 사이트

profile
코딩을 배우는 비전공자 코린이!

0개의 댓글