반응형
컬에서는 { } 를 이용하여 모든 메소드, 또는 명령어를 호출하게 되어 있다.
컬 클래스만든는 예제 프로그램
=======================================================================
{curl 2.0, 3.0 applet}
{curl-file-attributes character-encoding = "euc-kr"}
{define-class public Adder
field total:int = 0
field min:int = 0
field max:int = 0
|| 디폴트 생성자로 처리
{constructor public
{default}
set self.max= 20
set self.min = 10
}
|| 생성자인데 limits 라는 메소드로 생성 시킬때 초기화
{constructor public
{limits m1:int, m2:int}
set self.max = m1
set self.min = m2
}
{method public {add min:int,max:int} :int
{return min+max}
}
|#################################
{setter public {smax i:int}:void
set self.max = i
}
{getter public {gmax}:int
{return self.max}
}
{getter public {gmin}:int
{return self.min}
}
##################################|
}
{ let
val1:Adder = {Adder}
}
{ let
val2:Adder = {Adder.limits 0,200}
}
{ set
val1.max=100
}
{value
{val1.add val1.max,val1.min}
}
====================================================================
컬로 클래스 만들기
{define-class public Adder
field total:int = 0
field min:int = 0
field max:int = 0
|| 디폴트 생성자 만들기.
{constructor public
{default}
set self.max= 20
set self.min = 10
}
|| 생성자인데 limits 라는 메소드로 생성시키며 초기화
|| 매개변수는 m1 과 m2를 받아서 처리 함.
{constructor public
{limits m1:int, m2:int}
set self.max = m1
set self.min = m2
}
|| 메소드 설정
|| 메소드 명 : add 인자 min 과 max을 받음.
{method public {add min:int,max:int} :int
{return min+max}
}
}
보다시피 메소드를 실행 시킬때에는 { } 안에서 실행 시켜야 한다.
하지만 일반적인 배정문 등은 꼭 { } 안에 들어갈 필요가 없다.
{ let
val1:Adder = {Adder}
}
let 문을 사용하면 화면에 아무것도 출력되지 않는 어떠한 수행을 할수 있다.
위와 같은 예는 val1 의 참조에 {Adder}의 아무것도 없는 생성자를 호출하여
(defalut) 객체를 만들어서 물리는 과정이다.
{ set
val1.max=100
}
어떤 값을 넣어 줄때에는 set 명령을 이용하여 값을 배정해 준다.
여기서 max는 public 로 설정되어서.. 접속이 가능하다.
하지만.. private 등으로 설정된경우는 위와같이 접근할수 없다.
여기서 메소드를 통한 private 필드의 접근과 accessor을 이용한 접근.
두가지 방법이 있는데 그것은 다음과 같다.
{define-class public Adder
{method public {setMinUseMethod min:int} :void
set self.min = min
{setter public {setMinUseSetter min:int}:void
set self.min = min
}
}
위와 같이 하나는 일반적인 메소드이고
하나는 Accessor 중에서 setter 을 이용한것이다.
만약 self의 min 값을 바꾸어 주고 싶다면 다음과 같이 사용해야 한다.
메소드의 경우 : { object.setMinUseMethod 10 }
setter인 경우 : object.setMinUseSetter = 10
메소드의 경우.. 일반적인 실행 법 처럼 당연히 { } 를 싸줘야하고.
매개인자로 넘어 가므로 = 을 사용할수 없다.
하지만 setter인 경우 특별한 메소드(?) 이기 때문에 배정문 처럼 사용이 가능하다.
for 문의 예제를 하나 보자면 다음과 같다.
메소드를 사용한 for 문의 예제.
{ for i = 0 to {object.size} do
|| Some Code
}
getter을 사용한 for 문의 예제
{ for i = 0 to object.size do
|| Some Code
}
보다시피 좀 더 값을 보기 쉽게 되어 있다.
내 생각이지만.. getter 과 setter은
실제로는 getter 나 setter 의 형태의 메소드를 호출하는것이지만,
특별히 값을 얻고 배정하는것이므로 { } 를 생략하고,
일반 변수의 접근 처럼 쓸수 있게 해 준것 같다.
하지만 private 변수 등을 object.size 로 바로 접근하는것은,
잘못 접근하게 될 가능성을 주는것과 같다고 느껴진다.
========== 작성중 ============
let과 set 과 value의 차이점
let
========== 작성중 ============
컬의 최상위 클래스는 Object 이다.
( 자바와 같다. )
그러므로 모든 객체는 Object 형으로 참조 될수 있다.
하지만 Object 형 참조이므로.. 캐스팅을 시켜야 해당 객체의
메소드를 호출 할수 있게 되어 있다.
{ value
|| Assign an instance of HBox to "x".
let x:Object = {HBox "Hello"}
|| Convert "x" to be of type HBox
|| Use the HBox.add method to add contents to "x".
{(x asa HBox).add " World"}
|| Note that if you attempt to access the method
|| without converting "x", you generate an error.
|| display "x"
x
}
컬 클래스만든는 예제 프로그램
=======================================================================
{curl 2.0, 3.0 applet}
{curl-file-attributes character-encoding = "euc-kr"}
{define-class public Adder
field total:int = 0
field min:int = 0
field max:int = 0
|| 디폴트 생성자로 처리
{constructor public
{default}
set self.max= 20
set self.min = 10
}
|| 생성자인데 limits 라는 메소드로 생성 시킬때 초기화
{constructor public
{limits m1:int, m2:int}
set self.max = m1
set self.min = m2
}
{method public {add min:int,max:int} :int
{return min+max}
}
|#################################
{setter public {smax i:int}:void
set self.max = i
}
{getter public {gmax}:int
{return self.max}
}
{getter public {gmin}:int
{return self.min}
}
##################################|
}
{ let
val1:Adder = {Adder}
}
{ let
val2:Adder = {Adder.limits 0,200}
}
{ set
val1.max=100
}
{value
{val1.add val1.max,val1.min}
}
====================================================================
컬로 클래스 만들기
{define-class public Adder
field total:int = 0
field min:int = 0
field max:int = 0
|| 디폴트 생성자 만들기.
{constructor public
{default}
set self.max= 20
set self.min = 10
}
|| 생성자인데 limits 라는 메소드로 생성시키며 초기화
|| 매개변수는 m1 과 m2를 받아서 처리 함.
{constructor public
{limits m1:int, m2:int}
set self.max = m1
set self.min = m2
}
|| 메소드 설정
|| 메소드 명 : add 인자 min 과 max을 받음.
{method public {add min:int,max:int} :int
{return min+max}
}
}
보다시피 메소드를 실행 시킬때에는 { } 안에서 실행 시켜야 한다.
하지만 일반적인 배정문 등은 꼭 { } 안에 들어갈 필요가 없다.
{ let
val1:Adder = {Adder}
}
let 문을 사용하면 화면에 아무것도 출력되지 않는 어떠한 수행을 할수 있다.
위와 같은 예는 val1 의 참조에 {Adder}의 아무것도 없는 생성자를 호출하여
(defalut) 객체를 만들어서 물리는 과정이다.
{ set
val1.max=100
}
어떤 값을 넣어 줄때에는 set 명령을 이용하여 값을 배정해 준다.
여기서 max는 public 로 설정되어서.. 접속이 가능하다.
하지만.. private 등으로 설정된경우는 위와같이 접근할수 없다.
여기서 메소드를 통한 private 필드의 접근과 accessor을 이용한 접근.
두가지 방법이 있는데 그것은 다음과 같다.
{define-class public Adder
{method public {setMinUseMethod min:int} :void
set self.min = min
{setter public {setMinUseSetter min:int}:void
set self.min = min
}
}
위와 같이 하나는 일반적인 메소드이고
하나는 Accessor 중에서 setter 을 이용한것이다.
만약 self의 min 값을 바꾸어 주고 싶다면 다음과 같이 사용해야 한다.
메소드의 경우 : { object.setMinUseMethod 10 }
setter인 경우 : object.setMinUseSetter = 10
메소드의 경우.. 일반적인 실행 법 처럼 당연히 { } 를 싸줘야하고.
매개인자로 넘어 가므로 = 을 사용할수 없다.
하지만 setter인 경우 특별한 메소드(?) 이기 때문에 배정문 처럼 사용이 가능하다.
for 문의 예제를 하나 보자면 다음과 같다.
메소드를 사용한 for 문의 예제.
{ for i = 0 to {object.size} do
|| Some Code
}
getter을 사용한 for 문의 예제
{ for i = 0 to object.size do
|| Some Code
}
보다시피 좀 더 값을 보기 쉽게 되어 있다.
내 생각이지만.. getter 과 setter은
실제로는 getter 나 setter 의 형태의 메소드를 호출하는것이지만,
특별히 값을 얻고 배정하는것이므로 { } 를 생략하고,
일반 변수의 접근 처럼 쓸수 있게 해 준것 같다.
하지만 private 변수 등을 object.size 로 바로 접근하는것은,
잘못 접근하게 될 가능성을 주는것과 같다고 느껴진다.
========== 작성중 ============
let과 set 과 value의 차이점
let
========== 작성중 ============
컬의 최상위 클래스는 Object 이다.
( 자바와 같다. )
그러므로 모든 객체는 Object 형으로 참조 될수 있다.
하지만 Object 형 참조이므로.. 캐스팅을 시켜야 해당 객체의
메소드를 호출 할수 있게 되어 있다.
{ value
|| Assign an instance of HBox to "x".
let x:Object = {HBox "Hello"}
|| Convert "x" to be of type HBox
|| Use the HBox.add method to add contents to "x".
{(x asa HBox).add " World"}
|| Note that if you attempt to access the method
|| without converting "x", you generate an error.
|| display "x"
x
}
반응형
'공부 > 컴퓨터' 카테고리의 다른 글
[공학프로그램] 사다리 타기 소스 ^_^ (0) | 2004.04.28 |
---|---|
[ZDNET] C 개발자들의 숙원, 보안 강화「해법 보인다」 (0) | 2004.04.28 |
자료구조 1학기 중간고사 노트 정리 내용 ^_^ (0) | 2004.04.18 |
[생각중] 웹에서 바코드를 이용한 관리 프로그램 (0) | 2004.04.17 |
[생각중] ClipMaster (0) | 2004.04.17 |