루비의 경우에는 클래스 작성시 initialize() 메소드가 무조건 추가 해야 합니다. 생성자라고 하기도 하는 녀석?입니다. 클래스를 객체로 만드는 것을 "인스턴스화"라고 하며, 인스턴스 화의 결과물은 "객체"입니다. 객체가 생성 되기 위해 루비에서는 initialize() 함수가 필요로 합니다. @표시는 클래스에 속한 변수라는 의미로 "인스턴스 변수"라고 말합니다. p는 출력 메소드입니다.p() = p는 동일 합니다. c1.value라는 것은 c1의 인스턴스 변수 값을 반환하라~는 말과 같은데, 루비에서는 클래스의 인스턴스 변수 접근에 직접적인 접근을 허용하지 않습니다.그래서 필요로 한 방법이 get/set 함수를 통한 접근이 있습니다.get/set 함수를 이용하면 캡슐화를 보장 하는 기능이 있습니다..