이 있습니다.
그리고 이 손쉬운 방법을 통해 만들어진 객체를 프로그램에서 읽고,쓰고,고치고,객체로
하여금 일을 시키는 등 프로그래머가 원하는 것을 객체로부터 얻을 수 있습니다.
예를들면 필자는 스타크래프트에 등장하는 질럿을 만들 수 있습니다.
그리고 태어나는 질럿으로 하여금 태어나는 동시에 질럿이 소리를 내게도 시킬수
있습니다. 다음은 이런 질럿을 형상화,구조화한 내용입니다.
/**
* 스타크래프트에 등장하는 질럿입니다.
* 태어날 때 멋진 소리를 냅니다.
*/
class Zealot {
Zealot() {
sound();
}
void sound() {
System.out.println(“My Life For Aiur”);
}
}
예제 1-1
예제 1-1에서처럼 생각할 수 모든 것에 대해서 개념을 형상화 것을 데이터형이라고
합니다.
자바에서는 생각할 수 있는 모든 것에 대해서 프로그래머가 어떤 데이터형이라도 정의할 수
있습니다. 예제 1-1은 질럿이라는 것의 개념을 형상화해서 질럿 데이터형을 만든 것이라고
생각하면 무리가 없겠습니다.
사용자 정의 데이터형 만들기 I
자바에서는 사용자 정의 데이터형을 만들고자 할 때 사용하는 class라는 키워드가
있습니다. 자바에서 데이터형을 만들때는 예제 1-1에서 질럿을 만들때와 같은 방법으로
키워드 class로 적고 만들고자 하는 데이타형의 이름을 class키워드 옆에 나란히 쓰면
됩니다. 데이터형을 만들 때 데이터형의 이름을 적절하게 짓는 것이 아주 중요한데,
예제 1-1의 경우는 Zealot 이라는 이름이 적당할 것 같습니다.
사용자 정의 데이터형의 이름만으로 그 데이터형이 의미하는 바가 무엇인지를 파악할 수
있도록 이름을 짓는 일은 무척 중요한 일이 되기 때문입니다.
예제 1-1에서 붙혀진 이름 Zealot은 새롭게 만들어진 데이터형의 이름이 됩니다.
데이터형을 정의 할 때는 { 로 시작하여 }로 끝을 맺습니다.
class 키워드를 통해서 데이타형을 만들었을 때, 이를 "데이터형 이름" 클래스라고
부릅니다. 예제 1-1의 경우는 class 다음에 나타난 데이터형 이름이 Zealot 이므로
Zealot 클래스라고 부릅니다.
예제 1-1의 Zealot 클래스는 질럿을 형상화 한 것이지만 실제로 이 Zealot 클래스가
가지는 가치는 거의 없습니다.
왜냐하면 현재의 Zealot 클래스로 만들어질 Zealot객체들이 할 수 있는 일이라고는
만들어 질 때 “내 생명을 고향별 Aiur를 위해”라고 화면에 출력하는 일 밖에 없기
때문입니다.
사용자 정의 데이터형 만들기 II
동네에 롯데리아가 새로 생겨서 아들놈하고 한번 갔었는데, 롯데리아에서 BigRib이라는
햄버거를 팔고 있더군요. 그 BigRib 햄버거를 한번 만들어 보겠습니다.
/**
* 롯데리아에 파는 BigRib햄버거입니다.
* 햄버거 가격에 대한 정보를 갖고 있습니다.
*/
class BigRib {
int price = 2500; // 햄버거 가격
int getPrice() {
return price;
}
}
예제 1-2
BigRib 햄버거를 만들어 보았습니다.
BigRib 햄버거는 가격이 얼마인가요? BigRib햄버거에 대한 정보중 단연 으뜸의 정보는
값이 얼마나 할 것인지 하는 것일 테지요. BigRib 햄버거 클래스는 가격정보를 가지고
있고, 그 가격정보를 얻어낼수 있는 방법도 가지고 있습니다.
BigRib 햄버거는 가격정보를 자체적으로 갖고 있고 가격정보를 알려 줄 수 있는 기능을
갖고 있습니다. 왜 BigRib 햄버거를 그렇게 설계했느냐구요?
왜 그렇게 했냐하면 BigRib햄버거의 다른 특성보다도 값이 얼마인가가 중요하고 꼭 필요한
정보라고 판단했기 때문입니다. 완전히 제 맘입니다.
자바에서는 이처럼 생각 할 수 있는 모든 것을 만들 수 있으며 그 손쉬운 방법은 class라는 키워드를 이용하는 방법입니다.
'자바 Basic > 자바언어의핵심' 카테고리의 다른 글
자바공부-6. 클래스와 인스턴스 (3) | 2007.11.30 |
---|---|
자바공부-5. 메소드의 인자와 결과의 데이터 형 (0) | 2007.11.30 |
자바공부-4.자바메소드 (0) | 2007.11.30 |
자바공부-3.프리미티브 데이터형 (0) | 2007.11.30 |
자바공부-1.개요 (0) | 2007.11.30 |