객체 지향 프로그래밍 이란?
현실 세계는 사물(객체)로 이루어져있고, 발생하는 사건들은 사물간의 상호작용을 통해 이루어진다.
여기에서 착안하여 클래스를 이용해 연관있는 객체의 속성과 행위를 하나로 묶고, 그 객체들 간의 상호작용을 구현하는 프로그래밍 방법이다.
장단점
장점
- 재사용성
남이 만든 클래스를 가져와서 그 속의 속성과 함수를 사용할 수 있고, 상속을 통해 확장하여 사용할 수 있다. - 코드 중복 제거
코드의 중복을 제거하여 코드 불일치를 방지할 수 있다. - 유지보수
많은 인스턴스들이 한 클래스 내 변수와 함수를 사용한다. 함수에 버그가 있다면 그 부분만 수정하면 따로 인스턴스들의 수정이 필요 없다.
단점
- 개체 수가 증가하면 용량이 커질 수 있고, 처리 속도가 상대적으로 느리다.
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 |
---|