Welcome! 🙋‍♂️ View more

Engineering 💻/CS

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

DeepFlame 2022. 1. 16. 12:21

 

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


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

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

 

장단점


장점

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

단점

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

 

 

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] SQL과 NoSQL  (0) 2022.02.02