2009-07-11 7 views
4

나는 무엇을 이해 : state/does /. Java와 같은 필드를 클래스에 작성합니다. 내가 이해하지 못하는 것은이 점이 무엇인가? 나는 다른 클래스를 확장하는 Clojure 생성 클래스를 사용하여 완성 된 것으로 생각하는 것처럼 보인다. http://www.fatvat.co.uk/2009/05/clojure-and-robocode.html이 하나의 예이다. 자바에 대해서는 잘 모르겠다. 객체 지향 프로그래밍에 익숙하지 않다. 누군가가 나에게 주를 설명 할 수 있을까요? 자바 인터롭과 관련된 모든 부분을 설명 할 수 있습니까?문제 이해 : Clojure의 상태

고맙습니다. 내가 말할 때 :

참고 상태, 내가 말하는거다 내가 #Clojure IRC 채널에 hiredman 그것을 통해 이야기

답변

2

(: 세대 급 상태), 그는 나에게 말했다 그것의 주요 포인트 인스턴스 당 상태입니다. 그건 의미가 있습니다.

3

: 상태는 단순히 gen- 클래스의 일부로 생성 된 함수간에 일부 데이터를 공유하는 한 가지 방법입니다. 객체의 인스턴스 데이터와 정확히 같다고 생각하십시오. state 및 방법에

3

더 많은 정보]는 기사에서 기사에게

gen-class – how it works and how to use it을 찾을 수 있습니다 초기화 :

  • :state는 객체의 상태를 반환하는 방법을 정의합니다.
  • :init은 초기화 프로그램의 이름을 정의합니다. 이것은 벡터를 반환해야하는 함수입니다. 첫 번째 요소는 다시 수퍼 클래스 생성자에 대한 인수 벡터입니다. 여기서는 빈 벡터 일뿐입니다. 두 번째 요소는 객체의 상태입니다.

요약하면 init은 개체의 상태를 반환하며 개체가 인스턴스화 될 때 호출됩니다. state은 함수와 반대로 클래스의 메서드이며, init에 의해 반환 된 벡터의 두 번째 요소와 동일한 값을 반환합니다.

다음은 원자를 사용하여 필요한 경우 개체의 상태를 변경하는 방법을 보여줍니다.