객체 지향 프로그래밍(Object-Oriented Programming)
객체 지향 프로그래밍 이란 기존 절차 지향 프로그래밍 기법만의 유지보수와 기존 소프트웨어 재사용이 어려움에 좀더 나은 프로그램을 만들기 위한 프로그래밍 패러다임이다.
프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
객체 지향 프로그래밍은 인간중심적 프로그래밍 패러다임이다.
유지보수와 재사용성이 높다.
software maintenance is not “keep it working like before.” It is “keep being useful in a changing world” -jessica Kerr
객체지향 VS 절차지향
객체지향
- 데이터와 프로시저를 알맞게 묶음
- 설계에 많은 시간이 투자된다.
- 유지보수 및 업그레이드가 쉽다.
절차지향
객체란 데이터와 기능을 가진 물리적으로 존재하거나 추상적으로 생각 할 수 있는 것.
객체의 핵심 -> 기능제공
- 객체는 제공하는 기능으로 정의
- 내부적으로 가진 필드로 정의 하지 않음
클래스(Class)
클래스는 특정한 기능을 가진 객체를 생성하게 해주는 설계도라고 할 수 있다.
클래스로 부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다.
클래스에는 객체에 포함될 변수와 메소드를 정의해야 한다.