객체지향 프로그래밍(OOP)
필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 그 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
객체지향 프로그래밍의 장점
코드 재사용의 용이
남이 만든 클래스를 사용할수있고 상속을 통해 확장해서 사용할 수 있다.
유지보수가 쉬움
수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다.
대형 프로젝트에 적합
클래스 단위로 모듈화 시켜서 개발할 수 있으므로 여러명, 여러 회사에서 프로젝트를 개발할 때 업무 분담하기 쉽다.
객체지향 프로그래밍 단점
객체지향 특징
추상화 - 공통의 속성이나 기능을 묶어 이름으로 붙이는 것.
캡슐화 - 기능과 특성의 모음을 "클래스" 라는 "캡슐" 에 분류해서 넣는 것.
상속 - 부모 클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게하고 기능의 일부분을 변경해야 할 경우 상속받은 자식 클래스에서 해당 기능만 재 정의하여 사용할 수 있게 하는 것
다형성 - 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것.
클래스와 인스턴스(객체)란 무엇인지
클래스: 객체를 만들어 내기 위한 설계도
객체: 설계도로 구현한 모든 대상
(OOP의 관점에서 클래스의 타입으로 선언되었을 때 '객체' 라고 부른다.)