# 클래스와 객체
## 들어가며..
---
우리는 이전 파트에서 자바의 기본 문법에 대해 알아보았다.
![클라우드스터딩-자바-기본-문법-파트-요약](https://i.imgur.com/wU3oHxo.png)
이번 파트에서는 데이터와 처리를 하나로 묶는 법! 객체지향 프로그래밍을 학습해보자.
1. 객체 지향 프로그래밍
2. 클래스와 객체
3. 클래스 설계 및 구현
## 1. 객체 지향 프로그래밍
---
#### 무엇?
객체지향 프로그래밍(Object-Oriented Programming)이란, 조립식 프로그래밍이다. 객체를 조립하여 전체 프로그램을 만드는 것이다.
![클라우드스터딩-자바-객체-지향-프로그래밍-OOP-자전거-예](https://i.imgur.com/7LSoMCY.png)
#### 장점?
조립식으로 프로그램을 만들면 좋다. 고장이 나도 해당 부분만 수리하면 된다. 또 기능을 추가할 때, 만들어서 끼워 넣으면 된다.
![클라우드스터딩-자바-객체지향-이점-장점-강점](https://i.imgur.com/YYzQKcK.png)
안 쓸 이유가 없다. 무조건 OOP로 프로그램을 만드는 게 답이다.
## 2. 클래스와 객체
---
#### 객체는 어떻게 만드나?
프로그램이 객체들의 조합으로 만들어짐을 배웠다. 그럼 객체는 뭘로 만들까? 정답은 클래스이다.
![클라우드스터딩-자바-객체를-만드는-방법](https://i.imgur.com/dGwbFjI.png)
#### 클래스와 객체의 구분(차이)
클래스란, 객체를 만들기 위한 설계도이다. 해당 설계도를 통해 만들어진 무언가! 이를 객체 또 다른 표현으로 인스턴스(instance)라 한다.
![클라우드스터딩-자바-클래스와-객체-OOP](https://i.imgur.com/GAhMIfG.png)
프로그램을 만들려면 여러 객체가 필요하다. 여러 객체를 만들려면, 객체별 클래스가 필요하다. 결과적으로, 프로그램을 만들기 위해서는 클래스를 잘 만들어야 한다.
## 3. 클래스 설계 및 구현
---
#### 구조?
클래스를 잘 만들려면 그 구조를 알아야 한다. 클래스는 두 영역으로 나뉜다. 상태를 정의하는 필드(fields)와 동작을 정의하는 메소드(methods)이다.
![클라우드스터딩-자바-클래스-구조-필드-메소드](https://i.imgur.com/QFB1u3Z.png)
#### 설계 예
고양이를 클래스로 설계해보자. 아래와 같이 클래스를 도식화 한것을 클래스 다이어그램(class diagram)이라 한다.
![클라우드스터딩-자바-클래스-설계-예-고양이](https://i.imgur.com/CmaAvxL.png)
#### 구현 예
이제 이를 코드로 구현해야 한다. 왜? 그래야 객체를 만들 수 있다.
![클라우드스터딩-자바-고양이-클래스-구현-코드](https://i.imgur.com/0zMzYXO.png)
## 요약
---
![클라우드스터딩-자바-클래스와-객체-요약](https://i.imgur.com/zi6B90d.png)
#### 객체 지향 프로그래밍
- OOP라고 한다. 프로그램을 객체의 조립으로 만드는 방식이다.
- OOP는 프로그램의 관리/재사용/확장에 좋다.
#### 클래스 vs 객체
- 클래스는 객체를 만들기 위한 설계도이다.
- 객체의 또 다른 표현으로는 인스턴스(instance)가 있다.
- 때문에 클래스로 객체를 만드는 것을 "인스턴스화"라고 한다.
#### 클래스 설계 및 구현
- 클래스는 필드(상태)와 메소드(동작)로 구성된다.
- 클래스를 도식화한 것을 "클래스 다이어그램"이라 한다.
- 클래스 다이어그램 보고 코드를 작성할 줄 알아야 한다.
## 확인하기
---
<div class="interact_responsive_padding" style="padding:100% 0 0 0;position:relative;margin-bottom:5px;"><div class="interact_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe id="interactApp5cd8f4e837db5b001485a8c8" width="100%" height="100%" style="border:none;max-width:100%;margin:0;" allowTransparency="true" frameborder="0" src="https://quiz.tryinteract.com/#/5cd8f4e837db5b001485a8c8/q/1?method=iframe"></iframe></div></div>
## 도서구매
<a href="http://www.yes24.com/Product/Goods/104740689"><img src="http://image.yes24.com/goods/104740689/XL" width="50%" /></a>