02 객체지향 프로그래밍
클래스와 객체?
클래스와 객체
들어가며..
우리는 이전 파트에서 자바의 기본 문법에 대해 알아보았다.
이번 파트에서는 데이터와 처리를 하나로 묶는 법! 객체지향 프로그래밍을 학습해보자.
- 객체 지향 프로그래밍
- 클래스와 객체
- 클래스 설계 및 구현
1. 객체 지향 프로그래밍
무엇?
객체지향 프로그래밍(Object-Oriented Programming)이란, 조립식 프로그래밍이다. 객체를 조립하여 전체 프로그램을 만드는 것이다.
장점?
조립식으로 프로그램을 만들면 좋다. 고장이 나도 해당 부분만 수리하면 된다. 또 기능을 추가할 때, 만들어서 끼워 넣으면 된다.
안 쓸 이유가 없다. 무조건 OOP로 프로그램을 만드는 게 답이다.
2. 클래스와 객체
객체는 어떻게 만드나?
프로그램이 객체들의 조합으로 만들어짐을 배웠다. 그럼 객체는 뭘로 만들까? 정답은 클래스이다.
클래스와 객체의 구분(차이)
클래스란, 객체를 만들기 위한 설계도이다. 해당 설계도를 통해 만들어진 무언가! 이를 객체 또 다른 표현으로 인스턴스(instance)라 한다.
프로그램을 만들려면 여러 객체가 필요하다. 여러 객체를 만들려면, 객체별 클래스가 필요하다. 결과적으로, 프로그램을 만들기 위해서는 클래스를 잘 만들어야 한다.
3. 클래스 설계 및 구현
구조?
클래스를 잘 만들려면 그 구조를 알아야 한다. 클래스는 두 영역으로 나뉜다. 상태를 정의하는 필드(fields)와 동작을 정의하는 메소드(methods)이다.
설계 예
고양이를 클래스로 설계해보자. 아래와 같이 클래스를 도식화 한것을 클래스 다이어그램(class diagram)이라 한다.
구현 예
이제 이를 코드로 구현해야 한다. 왜? 그래야 객체를 만들 수 있다.
요약
객체 지향 프로그래밍
- OOP라고 한다. 프로그램을 객체의 조립으로 만드는 방식이다.
- OOP는 프로그램의 관리/재사용/확장에 좋다.
클래스 vs 객체
- 클래스는 객체를 만들기 위한 설계도이다.
- 객체의 또 다른 표현으로는 인스턴스(instance)가 있다.
- 때문에 클래스로 객체를 만드는 것을 “인스턴스화”라고 한다.
클래스 설계 및 구현
- 클래스는 필드(상태)와 메소드(동작)로 구성된다.
- 클래스를 도식화한 것을 “클래스 다이어그램”이라 한다.
- 클래스 다이어그램 보고 코드를 작성할 줄 알아야 한다.