객체지향이란?
컴퓨터 프로그래밍의 패러다임 중 하나로 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위를 이야기 합니다.
즉 “객체”들의 모임으로 파악하는 것.
객체지향 프로그래밍의 장점
- 코드의 재사용이 편리함(라이브러리, 상속)
- 유지보수가 쉬움(수정해야할 부분이 메소드 또는 변수로 구성되어 있어 찾아서 수정하기 쉬움
- 대형 프로젝트에 적합(클래스 단위로 모듈화 할 수 있어서 업무 분담이 쉬움)
객체지향 프로그래밍의 단점
- 비교적 처리속도가 느림
- 객체가 많아지면 용량이 커짐.
- 초기 프로젝트 설계 단계에서 시간과 노력이 많이 들어감.
객체지향 프로그래밍의 특징
- 클래스 + 인스턴스:
- 개발자 관점에서의 클래스란 모델링된 Object를 뜻하며, 이는 변수나 상수로 표현하고 기능을 메소드로 표현함.
- 인스턴스란 메모리에 올라온 클래스를 의미함.
- 추상화:
- 공통의 속성이나 기능을 묶어 이름을 붙이는 것을 뜻하며, 객체 지향적 관점에서 클래스를 정의하는 것임.
- 캡슐화:(getter, setter)
- 연관된 목적을 가지고 있는 변수와 함수를 클래스로 묶는 작업으로 외부의 잘못된 접근으로 값이 변하는 것을 막기 위함(은닉성: 접근제어자 활용)
- 상속:
- 자식 클래스가 부모 클래스의 속성과 기능으 받아 기능 중 일부를 변경 및 추가 해서 사용.
- 다형성: 부모 클래스에서 물려받은 함수를 자식클래스 내에서 오버라이딩 하여 사용.
- 오버라이딩: 부모클래스 메소드와 같은 이름, 같은 매개변수
- 오버 로딩: 같은 이름의 함수를 여러개 정의하여 매개변수에 따라 다르게 호출