자바, 객체지향!

자바, 객체지향!

자바 프로그래밍의 꽃, 조립식 프로그래밍!

09 클래스와 객체

# 클래스와 객체 ## 들어가며.. --- 우리는 이전 파트에서 자바의 기본 문법에 대해 알아보았다. ![클라우드스터딩-자바-기본-문법-파트-요약](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>

Challenge

개념 실습! 학습 내용을 진짜 내 것으로 만들기!