1. 객체(Object) 변수
현재 Wel 버전에서는 객체에 대한 개념 및 변수의 사용이 완전히 정립되지 않은
상태이며, 객체의 정의를 위한 문법적인 보완은 점진적으로 작업이 되어질 예정
이다. Wel의 객체는 자료를 지닐 수 있으며 자료를 조작하는 함수를 포함할 수
있다. 현재는 객체 변수를 선언 없이 사용하거나 또는 객체의 멤버 변수를
객체 이름과 동시에 선언하여 사용할 수 있으며 객체변수의 복사 및 함수의 되
돌림 값(Return value)으로 사용할 수 있다. 변수명에 "."이 있으면 그 변수는
객체 변수이며 그 변수 내에 또 다른 멤버 변수와 또 다른 객체 변수를 포함할
수 있다.
(예) 컴퓨터.본체.cpu = 686
위의 예에서 "컴퓨터" 나 "본체" 는 객체 변수이고 686이란 수치가 대입되는
"cpu" 는 자료를 수용하는 멤버 변수이다. 선언없이 객체나 멤버 변수를 사용할
수 있기 때문에 "컴퓨터"에 얼마나 많은 멤버와 하위 객체를 포함하고 있는지는
작성된 Wel 원시프로그램을 분석하지 않고는 알 수 없다. 이는 객체의 뼈대인
클래스에 대한 정의 부분이 추가 되지 않았기 때문이다.
2. 객체(Object) 변수의 사용
-. 아래와 같이 선언 없이 객체를 사용할 수 있다.
컴퓨터.본체.cpu= 686;
컴퓨터.본체.memory= "128Mbytes";
컴퓨터.모니터.크기= "19inch";
컴퓨터.모니터.가격= 500000;
PC= 컴퓨터; // "컴퓨터"내의 모든 멤버 및 하위 객체가 "PC"로 복사됨
print(PC.본체.memory); // "128Mbytes"가 출력됨
<위 예의 구조>
컴퓨터 +--> 본체 --+--> "cpu" PC +--> 본체 --+--> "cpu" 멤버 변수
| | +--> "memory" | | +--> "memory"멤버변수
`----+ `--+
+-> 모니터 --+-> "크기" +-> 모니터 --+-> "크기" 멤버 변수
+-> "가격" +-> "가격" 멤버 변수
3. 객체(Object) 배열 변수의 사용
-. 객체 배열만 선언하는 문법적인 보완은 아직 하지 않았으며 멤버변수의
선언과 동시에 할 수 있다.(아직 완전하지 않음)
free a[2].b, 우리동네.아파트[2].주인;
a[0].b= 12; a[1].b= 13; a[2].b= 14;
우리동네.아파트[0].주인= "홍길동";
우리동네.아파트[1].주인= "박길동";
우리동네.아파트[2].주인= "이길동";
a[0].집= 우리동네.아파트; // "아파트" 객체 배열을 a[0]의 "집"으로 복사
print(a[0].집[0].주인); // "홍길동"이 출력됨
※ 위의 예에서 "집" 이란 객체 배열은 a[0] 객체 배열에만 존재하고
a[1] 에서 a[3] 까지는 현재까지 "b"란 멤버변수만 존재한다.
|