객체지향 OOP!
객체지향 프로그래밍
Object-Oriented Programming
프로그램의 설계 방법이자 개념의 일종이다.
프로그램의 구현에 필요한 객체를 파악하고
각각의 객체들의 역할을 정의 , 객체들간의 상호작용을 이용하여
프로그램을 만들어내는 것을 뜻한다.
객체지향 프로그래밍의 장점
1. 재사용성 : 어떤 객체(class)를 다른 객체(class)가 상속하여 프로그래밍할 때에 코드의 재사용성을 높힐 수 있다.
2. 생산성의 향상 : 잘 설계된 객체(class)를 만들어 독립적으로 재사용함으로써 생산성을 크게 높힐 수 있다.
3. 유지보수의 편의성 : 기존 기능 수정 , 새로운 기능 추가에 용이하다.
객체지향의 특징중 하나인 캡슐화로 인하여 기존 함수를 수정하더라도 주변에 미치는 영향이 최소화되며
새로운 기능 추가시 에는 기존 클래스중 필요한 기능만을 상속 , 새로운 기능을 추가하면되기 때문이다.
객체지향 프로그래밍의 단점
1. 속도 : 절차지향 프로그래밍은 컴퓨터의 처리 구조와 비슷해 처리 속도가 빠른반면
OOP의 처리 속도는 절차지향에 비해 상대적으로 느리다.
2. 설계 : 객체별 설계를 필요로하므로 설계에 많은 시간과 노력이 필요하다.
객체지향 프로그래밍의 특징
1. 추상화 : 객체들의 공통적인 특징을 도출한다. Class를 정의하는 것
2. 캡슐화 : 외부로 보여지면 안되는 정보의 은닉이 가능하다, 객체의 독립적 역할이 가능하도록 데이터와 기능을 하나로 묶어 관리한다.
3. 상속 : 새로운 객체가 기존의 객체를 상속받음으로써 상속받은 객체의 자료와 연산의 사용이 가능해지게 한다.
4.다형성 : 다르게 동작하는 함수들을 동일한 이름으로 호출 -> OverLoading , OverRiding