java) 객체지향에 대하여.
안녕하세요. Zomder 입니다.
이번에는 클래스, 객체지향에 대하여 공부한 내용을 적어보려고 합니다.
예전에 객체지향에 대해서 공부 할 때는 이론적인 부분에 대해서 배웠는데
일단 이론 부터 정리를 해보겠습니다.
절차 지향 언어의 특징
-
일을 처리하는 순서와 과정이 중요하다.
-
순서, 과정이 달라지면 새로운 작업 모델이 필요하다.
-
컴퓨터의 작업방식을 프로그래밍에 적용한 것이다.
-
재사용성이 매우 낮다.
객체 지향언어의 특징
-
사람이 행동하고 생각하는 방식으로 프로그래밍 한다.
-
순서, 과정이 중요하지 않다.
-
이해하기 쉽고, 모듈화하기가 쉽다.
-
재사용성이 높고, 유지보수가 용이하다.
-
설계 중심 언어다.
각각 언어의 특징에 대한 이론적인 부분은 이렇습니다.
그렇다면 어떻게 하면 객체 지향적으로 코딩을 할 수 있을까 생각해 보았습니다.
일단 현실의 객체를 프로그래밍 할 때 해당 객체가 가지고 있는 요소가 코딩에 적합한 속성으로써
완벽히 일치하지 않는다는 사실을 알아야 했습니다. 예를 들면 고객 번호 같은 ID-Number같은 속성
들도 충분히 추가 될 수 있는 것이죠.
아래는 초보자를 위한 java-Programming 이라는 책에서 빌려온 객체 지향 프로그래밍 프로세스 인데요.
지금까지 막연히 글로 순서를 설정하고 코딩하는 방식을 사용했던 저는 나름의 객체 지향 프로그래밍하는
방법에 대해 생각을 정리 할 수 있는 부분 이었습니다.
-
아이디어 도입 : 구현될 프로그램에 대한 요구를 나타낸다.
-
아이디어 분석 : 주체의 관점에서 아이디어를 분석한다.
-
객체 추출 : 주체의괸점에서 객체를 추출한 후 속성과 동작을 나타낸다.
-
객체 모델링 : 개발자의 관점에서 객체의 속성과 동작을 정제한다.
-
클래스로 변환: 객체를 클래스로 변환한다.
-
인스턴스 생성 및 사용 : 메모리에 인스턴스로 생성 후 사용한다.
대략 위의 과정을 거치는 겁니다.
예를 들어 저를 객체로 만들어 추출하면
속성 |
닉네임, 직업, 나이 |
동작 |
글을 작성, 코딩 공부, 독서, 운동 |
이렇게 추출 할 수 있겠죠.
하지만 객체 모델링에서 객체의 속성과 동작을 "블로거" 라는 목적(주체)에 맞게 정제 하게 되면
속성 |
닉네임 |
동작 |
글을 작성, 코딩 공부 |
이렇게 동작과 속성을 원하는 부분만 남겨 놓고 나머지는 없애면 되겠죠. 같은 객체를 보고도
필요에 따라 원하는 것을 추가하고 뺄 수 있는 것입니다. 이런게 객체 지향의 가장 큰 이점이 아닌가 합니다.
너무 뻔한 가요?ㅎㅎ
사실 머리 속에 있는 것들이 너무 많으면 되려 정리가 너무 안되더라구요.
그래서 나름의 공부도 하고 생각도 정리할 겸 글로 써 작성해보았습니다.
선배님들의 많은 생각 공유 해주시면 공부하는데 참고하도록 하겠습니다.
'자바' 카테고리의 다른 글
Switch문을 사용할 때 할 수 있는 실수! (0) | 2020.12.20 |
---|---|
JAVA 다중 반복문 한번에 종료! Break Label (0) | 2020.12.20 |
java) intelliJ 에서 Command line 을 이용한 데이터 전달하기 (0) | 2020.11.19 |
email 체크 정규식 (0) | 2020.11.06 |
java API 11 doc 이용법 정리. (0) | 2020.10.23 |