루비 클래스 멤버 이야기 2 시작합니다.
출처:생활코딩
이번에 설명하는 것은 클래스 변수라는 것입니다.
사실 위 코드는 객체가 생성 되면, count 변수라는 녀석이 점점 증가 합니다.
제가 3개의 객체를 생성 했으므로 총 3 이라는 숫자가 count 변수에 속하게 됩니다.
그런데 어떻게 변수가 객체 생성 전에 있는 걸까요 ?
그건 @@ 기호로 정의 되어 클래스 변수이기 때문이죠.
객체 생성 이전에 count 변수는 미리 로드 됩니다.
자바, C 기타 언어들에서 지원하는 static과 같습니다.
다른 언어를 해보셨다면, 금방 아실거라 생각합니다.
그리고 지난 번에 배웠던 클래스 메소드가 있네요 ? ^^
get 메소드형태인데, 루비 언어는 자체적으로 모든 변수(멤버변수, 클래스 변수)는
private 성질을 가지므로, get/set 메소드가 필수!입니다.
메소드의 경우 기본 접근자는 public 입니다만, initailze()인 생성자의 경우 private입니다.
그리고 루비의 private의 경우 Java와는 다르게 단일 객체 내에서만 접근 가능 합니다.
반응형
'프로그래밍 > Ruby' 카테고리의 다른 글
Block vs Closure 차이 (0) | 2015.11.20 |
---|---|
Ruby에서 Module 사용하기 (0) | 2015.08.14 |
Ruby class의 멤버에 관한 이야기 1 (0) | 2015.07.28 |
Ruby 에서 Block 표현식 사용 이야기 (0) | 2015.07.25 |
Ruby 언어의 생략 이야기 (0) | 2015.07.25 |