객체 지향 프로그래밍(Object Oriented Programming) == OOP
객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임중 하나로, 프로그래밍에서 필요한 데이터를 추상화 시켜, 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
객체 지향 프로그래밍의 장, 단점
- 장점
코드 재사용이 용이하다.
- 남이 만든 클래스를 가져와서 사용할 수 있고 상속(extends, implements)을 통해 코드를 확장해서 사용할 수 있다.
유지보수 용이
- 절차 지향 프로그래밍에서는 코드를 수정할 때 일일이 찾아가며 수정해야 하지만 객체 지향 프로그래밍에서는 수정해 야 할 부분이 해 당 클래스 내부에 멤버 변수 혹은 메소드로 이루어져있기 때문에 해당 부분만 수정하면 된다.
대형 프로젝트에 적합
- 클래스 단위로 모듈화 시켜서 개발할 수 있으므로, 대형 프로젝트처럼 여러명, 여러회사에서 개발할 경우 업무를 분담 할 수 있다.
- 단점
처리속도가 상대적으로 느리다.
객체가 많으면 용량이 커질 수 있다.
설계시 많은 시간과 노력이 필요하다.
객체 지향 프로그래밍 키워드 5가지
1) 클래스 + 인스턴스(객체)
2) 추상화
3) 캡슐화
4) 상속
5) 다형성
클래스와 인스턴스(객체)
클래스 : 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 집단에 속하는 속성(attribute)과 행위(behavior)를 변수와 메소드로 정의한 것
인스턴스(객체) : 클래스에서 정의한 것을 토대로 실제 메모리상에 할당된 것으로 실제 프로그램에서 사용되는 데이터
추상화
불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 공통의 속성이나 메소드를 뽑아내는것
(로직 부분을 제외한 선언부분만)
캡슐화
캡슐화의 목적 : 코드를 재 수정 없이 재활용 하는것이다.
관련된 기능과 특성을 한 곳에 모으고 분류하여 재활용이 원활하다. 객체 지향 프로그래밍에서 기능과 특성의 모음을 "클래스" 라는 "캡슐"에 분류해서 넣는것이다.
상속
부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게하고 기능의 일부분을 변경하여 자식 클래스에서 해당 기능만 다시 수정하여 사용할 수 있게 하는 것이다.
다형성
같은 모양의 코드에서 다른 행위를 하는 것. Overriding , Overoading을 사용
출처 : http://jeong-pro.tistory.com/95
댓글