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

2022. 1. 16. 12:21·Engineering/CS

 

객체 지향 프로그래밍 이란?


현실 세계는 사물(객체)로 이루어져있고, 발생하는 사건들은 사물간의 상호작용을 통해 이루어진다. 

여기에서 착안하여 클래스를 이용해 연관있는 객체의 속성과 행위를 하나로 묶고, 그 객체들 간의 상호작용을 구현하는 프로그래밍 방법이다.

 

장단점


장점

  • 재사용성
    남이 만든 클래스를 가져와서 그 속의 속성과 함수를 사용할 수 있고, 상속을 통해 확장하여 사용할 수 있다.
  • 코드 중복 제거
    코드의 중복을 제거하여 코드 불일치를 방지할 수 있다.
  • 유지보수
    많은 인스턴스들이 한 클래스 내 변수와 함수를 사용한다. 함수에 버그가 있다면 그 부분만 수정하면 따로 인스턴스들의 수정이 필요 없다.

단점

  • 개체 수가 증가하면 용량이 커질 수 있고, 처리 속도가 상대적으로 느리다. 

 

 

5가지 키워드


1. 추상화

클래스나 인스턴스의 공통으로 사용되는 중요한 속성이나 기능을 묶어서 정의하는 것

2. 캡슐화

접근 제어자를 통해 데이터를 은닉하고, 코드를 재수정없이 재활용하기 위해 기능과 특성의 모음을 클래스라는 캡슐에 넣는 것

3. 상속

부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게 하고, 일부분을 수정할 수 있도록 만든 것

4. 다형성

하나의 메소드나 클래스를 다양한 방법으로 동작할 수 있도록 정의 하는 것 (오버라이딩, 오버로딩)

 

 

 


참고
https://m.blog.naver.com/PostView.nhn?blogId=29java&logNo=70187502359&proxyReferer=https:%2F%2Fwww.google.com%2F
https://jeong-pro.tistory.com/95

 

'Engineering > CS' 카테고리의 다른 글

[DB] Index란 (feat. B+-Tree)  (0) 2022.02.13
[PostgreSQL] Python에서 다중 행을 Insert하는 다양한 방법과 비교  (0) 2022.02.10
[DB] SQL과 NoSQL  (0) 2022.02.02
[DB] 데이터베이스 기초  (0) 2022.01.10
'Engineering/CS' 카테고리의 다른 글
  • [DB] Index란 (feat. B+-Tree)
  • [PostgreSQL] Python에서 다중 행을 Insert하는 다양한 방법과 비교
  • [DB] SQL과 NoSQL
  • [DB] 데이터베이스 기초
AI건축가
AI건축가
LLMOps Engineer로 커리어를 쌓고 있습니다. 저만의 시점으로 AI를 해석하고자 노력합니다. 함께 배우고 성장하는 공간이 되었으면 좋겠습니다. 😊🚀
  • AI건축가
    DeepFlame AI
    AI건축가
  • 전체
    오늘
    어제
    • 분류 전체보기
      • AI
      • Ops
      • Engineering
        • Algorithm
        • CS
        • BigData
        • Tools
      • Personal
        • Toy Project
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    세미나
    kubernetes
    DP
    MSA
    PostgreSQL
    LeetCode
    algorithm
    mlops
    deepseek
    hadoop
    db
    AWS
    airflow
    Ai
    Hive
    Cloud
    mongoDB
    ec2
    Python
    Bio
    scala
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
AI건축가
[CS] 객체 지향 프로그래밍
상단으로

티스토리툴바