JAVA 를 대표할 특징이자 JAVA 프로그래밍의 기초는 무엇보다도 '객체 지향성' (Object-Oriented) 이다.

 

객체 지향이란 프로그램의 기능을 그룹별로 나누고, 이것을 조합하여 프로그램을 작성해 나간다는 개념이다. 이 특징을 지닌 Java를 이용하여 보다 복잡하고 수준 높은 프로그램을 만들 수 있다.

 

하나의 모든 제작흐름을 쪼개어 각 부서에 할당하는 산업사회에서의 분업화와 같다.

자동차 제작을 타이어 제작, 차체 제작, 도색, 조립작업 등 각 부서로 나누어, 둥근 타이어를 착용했다가 삼각형의 타이어를 자동차에 장착시켜 제작하고 싶으면, '타이어 제작' 부서에 있는 둥근 타이어를 모두 삼각형의 타이어로만 교체해주면 된다. 이렇게 모든 작업들이 부분 부분으로 묶여서 하나의 파츠가 되는것이다.

 

JAVA 의 이러한 객체 지향성을 이용하여, 작성한 프로그래밍 언어들을 부서로 나누어 마치 프로그래밍을 레고 조립하듯이 각자의 행동들을 묶어서 복합적인 행동(최종적인 결과물)으로 만들 수 있다.

 

Java 의 '객체 지향성'의 핵심은 Class 클래스와 Object 오브젝트이다.

 

 

Class 는 부서 내부의 구성원의 직급은 무엇무엇이 있으며, 각 구성원들의 행위에 대한 정의의 모음이다.

쉽게 생각하면 부서의 세세한 내용들(detail)에 대한 정의에 불가한 설계도의 개념이다. 클래스에는 2 가지의 정의가 있다. 하나는 '필드'라고 불리우는 데이터(data, 변수와 같은 것들)나머지 하나는 '메소드'라 불리우는 처리동작(함수, function) 이다. 이 둘을 합쳐 Class 의 '멤버'라고 부른다.

 

1. 부서 내부의 직급 (필드) :

사원, 대리, 과장, 차장, 부장, 사장

 

2. 구성원들의 행위에 대한 정의 (메소드) :

사원은 대리에게 항상 A 계획서를 제출

대리는 과장에게 항상 A 계획서의 정리본을 제출

 

 

 

Object 는 Class 에서 정의된 직급 등의 세세한 내용들을 실제로 적용하는 것이다. 이를 '실체화' 라고 하며 전문용어로 '인스턴스화' 라고 한다. Class 는 설계도 틀 (실제로 구현된것이 아닌 추상화 지도), Object 는 그 설계도 틀을 기반으로 우리가 필요한 의도에 맞게 만들어낸 실체인것이다. 그렇기 때문에 Class는 그 자체로 우리가 사용할 수 없으며, Object로 꼭 실체화를 해주어야지 이용 가능하다.

 

같은 Class 를 이용하더라도 각자 다른 값들을 넣을 수 있으므로 Object 는 유저가 원하는 만큼 무한대로 만들어 낼 수 있다. Class 라는 여러 행위들이 정해진 기계를 이용해 물품을 반복적으로 찍어내는 것과 같다.

 

인스턴스(Instance)는 추상화 개념, 클래스 객체, 컴퓨터 프로세스 등과 같은 틀(template)이 실제 구현된것.

 

1. 부서 내부의 직급에 해당하는 구성원 (필드) :

사원 - 김xx, 진xx, 허xx, 대리 - 이xx, 과장 - 정xx 등등... 

사원은 3명, 대리는 1명, 과장은 1명 등등...

이렇게 각 직급의 사람 수, 실제로 사람들에게 직급을 할당해준다.

 

2. 구성원들의 행위에 대한 자세한 정의 (메소드) :

김xx(사원)은 이xx(대리)에게 게임 스토리 계획서를 제출한다.

이xx(대리)는 정xx(과장)에게 항상 게임 스토리 계획서 정리본을 제출.

 

 

 

- Class 의 생성

필드와 메소드가 각각 무엇인지에 대해 이 Class에서 정의만을 해 놓는다.

 

Class 이름 : '회사 정보'

 

필드(데이터)

int 형 : 사원은 총 몇명인가에 대한 변수

String 형 : 사원의 이름은 무엇인가를 넣기 위한 변수

 

메소드(처리동작, 함수)

send( String a, String b, String A ) : a 사원이 b 대리에게 A 계획서를 전해주는 함수

 

- Object 의 생성

Class 는 변수의 형과 같은 것으로, 단지 설계도면 개념에 불가하다. 그래서 Class의 틀을 기반으로 실체를 만든다.

 

Class 이름 : '회사 정보' - 에 대한 Object 의 이름 : 'Abc 회사'

 

필드(데이터)

int 형 : 사원은 총 몇명인가에 대한 변수 = 3 명이다.

String 형 : 사원의 이름은 무엇인가를 넣기 위한 변수 = 각각 김xx, 진xx, 허xx

 

메소드(처리동작, 함수)

send( String '김xx', String '이xx', String '게임 스토리' ) 

'김xx' 사원이 '이xx' 대리에게 '게임 스토리' 계획서를 전해주는 함수

 

 

 

 

 

 

 

+ Object 생성 후

 

- Class의 필드를 참조, 대입

- 같은 Object 내의 필드

- 다른 Object 의 필드

 

- Class의 메소드를 참조, 대입

- 같은 Object 내의 메소드

- 다른 Object 의 메소드

- 인수를 갖는 메소드

- 인수를 가지지 않는 메소드

 

오버로딩

 

생성자

- 인수가 없는 생성자

- 인수가 있는 생성자

 

+ 여러 생성자

- 디폴트 생성자

- 복제 생성자

 

 

 

++++ main 메소드

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Java 프로그래밍에서는

 

부품(물건, 객체, 오브젝트)별로 프로그램들을

 

 

 

 

 

 

 

 

우선 컴퓨터 언어는 3 가지 종류로 분류된다.

Posted by 하늘_