객체 지향 프로그래밍에 대해서 정리해보겠습니다.
객체 지향 프로그래밍이란?
- 컴퓨터 프로그램을 단순히 명령어로 보는 것이 아닌 독립된 "객체"들의 모임으로 파악하는 개념
- 각각의 객체는 메시지도 주고받고 협력할 수도 있다
- 한마디로 데이터를 추상화해서 객체로 만들고 객체 간에 상호작용을 하도록 프로그래밍하는 방법이다.
객체 지향의 장단점은?
장점
- 유연하고 변경에 용이하다(유지보수가 쉽다) - 전체 코드를 일일이 찾아서 수정하지 않고 객체 하나만 수정하면 됨
- 대규모 소프트웨어 개발에 적합하다. - 업무 분담이 쉬움
- 코드 재사용이 편리하다
- 모델링이 쉽다 - 객체라는 개념이 현실 세계와 비슷하기 때문
단점
- 실행 속도가 상대적으로 느림
- 난이도가 어려움
- 설계와 구현에 더 많은 시간이 소요
객체 지향의 키워드 및 특징
- 클래스 - 객체를 만들기 위한 정보를 정의한 것 (변수, 메서드 등을 정의해서)
- 인스턴스 - 클래스가 정의한 것을 실제로 메모리에 할당하는 것
- 추상화 - 객체들을 공통적인 특성을 파악하여 묶은 것을 정의하는 것, 클래스의 특성을 설계한다는 개념
- 캡슐화 - 객체를 캡슐처럼 만든다는 의미, 외부에 정보 노출을 막고 권한이 있는 객체만 접근할 수 있도록 함 (코드 재활용, 정보은닉)
- 상속 - 부모 클래스에게 속성과 기능들을 그대로 물려받는다는 의미, 물려받은 것 중 일부를 수정해서 사용도 가능
- 다형성 - 상황에 따라 다른 의미로 해석될 수 있다는 것, 같은 객체가 다른 형태로 재구성될 수 있다.
- 다형성>오버라이딩 - 부모 클래스의 메서드와 매개변수를 다시 정의하는 것
- 다형성>오버로딩 - 같은 이름의 메서드를 여러 개 정의, 매개변수를 타입과 수를 변경하여 다르게 호출할 수 있도록 함
객체지향에서 가장 중요한 다형성에 대한 조금 더 자세한 내용
https://nack1400.tistory.com/42
객체 지향 프로그래밍의 다형성이란? (다형성의 본질, 역할과 구현, 구현 객체와 인터페이스)
다형성(Polymorphism) 객체 지향에서 가장 중요한 개념 예시 1) 무대에서 공연을 하는 배우와 감독 특징 1 - 배우는 대체가 가능해야 한다. => 이상이 생긴 곳만 고치면 된다. 유연하다. 특징 2 - 배우는
nack1400.tistory.com
'CS 지식, 개념정리' 카테고리의 다른 글
객체 지향 프로그래밍의 다형성이란? (다형성의 본질, 역할과 구현, 구현 객체와 인터페이스) (0) | 2022.01.26 |
---|---|
DNS란 무엇인가? 도메인이란 무엇인가? (DNS, 도메인, 호스팅) (0) | 2021.12.27 |