기존에 작성했던 OOP을 객체지향프로그래밍이라고 한다. (Object-Oriented Programming, OOP)
객체지향프로그래밍은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체
로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
변수
와 작업을 수행 할 메소드
를 연관된 것들끼리 묶어서 만든 것을 객체라고 할 수 있다.객체지향프로그래밍을 레고에 빗대 표현 할 수 있는데,
객체
가 레고의 조각이 될 것이고 레고의 조각을 조립해서 무언가를 만드는 방식이 객체지향 프로그래밍이라고 할 수 있다.
크게 추상화
, 캡슐화
, 상속
, 다형성
의 네가지 특징을 가진다.
추상화가 필요한 이유
: 예를 들어 추상화로자동차
를 구현해 두면 다른 곳의 코드
속성과 기능을 정의하는 변수와 메소드를 클래스라는 캡슐에 넣어서 분류하는 것으로 재활용이 원활하다는 장점
장점
: 재사용으로 인한 코드가 줄어든다, 범용적인 사용이 가능하다, 자료와 메서드의 자유로운 사용 및 추가가 가능하다.단점
: 상위클래스의 변경이 어려워진다, 불필요한 클래스가 증가 할 수 있다, 상속이 잘못 사용될 수 있다
객체지향프로그래밍은 하나의 클래스 내부에 같은 이름의 행위를 여러개 정의하거나 상위 클래스의 행위를 하위 클래스에서 재정의하여 사용할 수 있기 때문에 다형성이라는 특징을 갖게 된다.