ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체지향프로그래밍(OOP)
    Fast-campus/Java 2022. 12. 23. 20:08

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

    객체란?

     객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할 변수와 작업을 수행 할 메소드를 서로 연관된 것들끼리 묶어서 만든 것을 객체라고 할 수 있습니다. 개인적으로 저는 처음 프로그래밍 공부를 했던 언어가 C언어여서 그런지 절차지향 언어와 비교를 하며 생각하니 이해하기가 쉬웠어서 아래에 비교를 하면서 간단하게 설명을 해보겠습니다!

    객체지향 vs 절차지향

    객체 지향

    • 많은 객체(Objcet)들이 모여서 상호 협력하면서 데이터를 처리하는 방식의 프로그래밍 설계 방법
    • 기능이 아닌 객체가 중심이 되며 "누가 어떤 일을 할 것인가?"가 핵심

    장점

    1. 코드 재사용이 용이함
      - 남이 만든 클래스를 가져와서 이용할 수 있고, 상속을 통해 확장하여 사용할 수 있음
    2. 유지보수가 쉬움
      - OOP에서는 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다. 
    3. 대형 프로젝트에 적합
      - 클래스 단위로 모듈화시켜서 개발할 수 있기 때문에 업무 분담하기 좋다

    단점

    1. 처리 속도가 상대적으로 느림
    2. 객체가 많으면 용량이 커질 수 있음
    3. 설계시 많은 시간과 노력 << 얘가 제일 힘듬(객체지향이 쉽게 이해가 안가는 이유도 이거인가 싶음..)

    절차 지향

    • 시간이나 사건의 흐름에 따른 프로그래밍이다.
    • 기능중심으로 바라보는 방식으로 "무엇을 어떤 절차로 할 것인가?"가 핵심

    장점

    1. 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어보다 더 처리속도가 더 빠름
    2. 함수를 통한 코드의 재활용성이 높아 가독성이 높아짐.
      // Java를 이제 배우는 중이라서 그런지 이 부분이 가장 아쉬웠음..

    단점

    1. 유지보수가 어렵습니다.
    2. 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 결과값도 변함
    3. 2번과 비슷한 느낌의 단점인데 디버깅하기가 어려움

    객체지향 설명 포스팅에서 빠질 수 없는 OOL의 특징 4가지

    1. 캡슐화
      더보기
      - 객체의 속성과 행위를 하나로 묶음
      - 데이터와 코드의 형태를 외부로부터 은닉
    2. 상속
      더보기
      - 객체가 다른 객체를 상속받아 상속받은 객체의 요소를 사용하는 것
      - 자식 객체는 상속된 부모 객체의 은닉화 구성에 따라 정해진 변수, 메소드에 접근 할 수 있음
    3. 다형성
      더보기
      - 한 객체가 다른 여려형태의 객체로 재구성 되는 것
    4. 추상화
      더보기
      - 클래스를 정의할 때 불필요한 부분들을 생략하고 객체의 속성 중 중요한 것에만 중점을 두어 개략화 하는 것을 말한다.
      - 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것

    'Fast-campus > Java' 카테고리의 다른 글

    Java가 무엇인가  (0) 2022.12.19

    댓글

Designed by Tistory.