Define Class() 내의 Method() 선언 내에 정의된 변수?Function()에서 변수를 지역으로 선언할 수 있습니다. 그러나 Define Class() 내부의 Method()에 관해서는 메서드 내로 범위가 지정된 일시적인 로컬 변수에 대한 규정이 없는 것 같습니다.
이는 Method() 내에서 선언된 모든 변수가 영구적이고 클래스 외부에서 볼 수 있음을 의미합니까?
Re: Define Class() 내부의 Method() 선언 내부에 변수가 정의되어 있습니까?이전에 JSL Classes를 다시 보지 않고 응답했음을 인정합니다. 나는 그들이 처음 소개된 이후로 그것들을 연구하거나 사용하지 않았습니다. 혼란을 드려 죄송합니다.
설명서에 나와 있듯이 전용 멤버, 메서드 또는 함수가 없습니다. 개인 속성을 선언하는 방법을 찾지 못했습니다.
아니요, JMP는 별도의 클래스 및 인스턴스 변수를 제공하지 않습니다.
Re: Define Class() 내부의 Method() 선언 내부에 변수가 정의되어 있습니까?이해하는 데 점점 가까워지고 있지만 몇 가지 더 도와주실 수 있나요?
(1) 클래스 변수 대 인스턴스 변수: JSL에 이러한 구분이 있습니까? 그렇다면 어떻게 변수를 둘 중 하나로 만들 수 있습니까?
(2) 프라이빗 인스턴스 변수와 퍼블릭 인스턴스 변수: JSL에 이러한 구분이 있습니까? 그렇다면 변수를 프라이빗으로 만드는 방법은 무엇입니까?
2와 관련하여 확실히 Get/Set 변수를 구현할 수 있지만 변수에 직접 액세스하는 것을 방지하는 방법을 알 수 없습니다.
JSL 클래스 모델에 이러한 구분이 없을 수도 있지만 괜찮습니다. 하지만 저는 이 점을 명확하게 이해하려고 노력하고 있습니다.
Re: Define Class() 내부의 Method() 선언 내부에 변수가 정의되어 있습니까?네, 이해합니다. 일부 표현식이 클래스 수준 변수와 관련된 계산에 메서드 로컬 변수를 할당하는 상황이 있습니다. Local()을 사용한다면 Local 절 내의 모든 클래스 수준 변수 앞에 "this:" 접두사를 붙일 것입니다.
그러나 어쨌든 내 실험에 따르면 이것은 어쨌든 필요하지 않을 수 있습니다. 어디에서 볼 수 있는지에 대한 느낌을 얻으려고했습니다.Re: Define Class() 내부의 Method() 선언 내부에 변수가 정의되어 있습니까?아니요, 메서드 내에서 Local()을 사용하는 것을 의미했습니다.
인스턴스 또는 클래스 속성에 대한 액세스 및 제어를 관리하려면 getter 및 setter 메서드를 사용하여 자신의 질문에 답했다고 생각합니다.
Re: Define Class() 내부의 Method() 선언 내부에 변수가 정의되어 있습니까?아마도. Local()에서 메서드의 내용을 래핑하면 실패하지만 모든 클래스 수준 변수를 한정하는 네임스페이스를 시도할 수 있습니다.
실제로 실험을 해보았는데(요청하기 전에 해봤어야 했음) 메소드 내부에 선언된 변수는 네임스페이스 접두사를 사용해도 외부에서 참조할 수 없는 것 같습니다. 따라서 달리 지정하지 않는 한 자동으로 메서드에 로컬인 것처럼 보입니다.
더 넓은 질문에서 "비공개" 변수와 동등한 것을 가지려면 어떻게 하시겠습니까? Get 메서드를 통해서만 액세스할 수 있는 클래스 변수를 만들고 싶다고 가정해 봅시다.Re: Define Class() 내부의 Method() 선언 내부에 변수가 정의되어 있습니까?메서드 내에서 Local() 함수를 사용할 수 없습니까?