카테고리 없음

객체지향 프로그래밍

우성팔 2024. 1. 9.
  • 핵심키워드
    • 절차지향 프로그래밍과 차이점, 캡슐화, 접근제한자, 상속, 다형성

 

  • 객체지향 프로그래밍(OOP)은 프로그래밍 패러다임 중 하나로, 현실 세계의 객체와 유사한 ‘객체’라는 개념을 중심으로 프로그램을 구성하는 방식입니다. 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고, 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법

 

  • 객체 지향 프로그래밍의 특징
    1. 추상화
      1. 객체에서 공통된 속성과 행위를 추출하는 것
      2. 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만다는 것
    2. 캡슐화
      1. 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것(변수와 함수를 하나로 묶는 것)
      2. 낮은 결합도를 유지할 수 있도록 설계하는 것
      3. 속성과 기능을 정의하는 변수와 메소드를 클래스라는 캡슐에 넣어서 분류하는 것으로 재사용이 원활하다는 장점이 있고 캡슐화를 통해서 정보은닉을 활용할 수도 있습니다.(접근제어자의 활용)
    3. 상속
      1. 클래스의 속성과 행위를 하위 클래스에 물려주거나 하위 클래스가 상위 클래스의 속성과 행위를 물려받는 것을 의미합니다.
      2. 새로운 클래스가 기존의 클래스의 데이터와 연산을 이용할 수 있게 하는 기능
      3. 장,단점
        1. 장점
          1. 재사용으로 인한 코드가 줄어든다
          2. 범용적인 사용이 가능하다
          3. 자료와 메서드의 자유로운 사용 및 추가가 가능하다
        2. 단점
          1. 상위 클래스의 변경이 어려워진다
          2. 불필요한 클래스가 증가할 수 있다
          3. 상속이 잘못 사용될 수 있다
    4. 다형성
      1. 하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석될 수 있는 것을 의미합니다
      2. 오버라이딩, 오버로딩
        1. 오버라이딩 : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용하는 것
        2. 오버로딩 : 같은 이름의 메서드가 인자의 개수나 자료형에 따라 다른 기능을 하는 것

 

  • 객체지향 방식의 장단점
    • 장점
      • 코드의 재사용성과 유지보수성이 향상되며, 유연하고 확장 가능한 시스템을 설계할 수 있습니다.
    • 단점
      • 처리속도가 상대적으로 느리다
      • 객체의 수가 많아짐에 따라 용량이 커질 수 있다
      • 설계 시 많은 시간과 노력이 필요하게 될 수 있다
          •  

댓글