Ruby의 모든 것은 Object입니다.
Object 는 attribute와 method를 가지고 있습니다.
initialize는 class가 생성하는 각각의 객체를 초기화하는 함수로 생각할 수 있습니다.
변수에 @를 사용하여 해당 변수가 인스턴스 변수임을 나타냅니다.
이는 변수가 클래스의 인스턴스에 속함을 의미합니다.
.new 키워드를 사용해 class의 인스턴스를 생성합니다.
@Instance variables
각각의 인스턴스에서만 참조할 수 있는 변수로
객체의 상태를 저장할 수 있습니다.
객체 밖에서 인스턴스 변수에 접근하기 위한 메소드로
attr_accessor를 이용합니다.
attr_reader 는 인스턴스 변수에 접근하기 위해 사용하는 메소드
attr_writer 는 인스턴스 변수를 수정하기 위해 사용하는 메소드
attr_accessor 는 인스턴스 변수에 접근하고 수정하기 위해 사용
클래스를 대상으로 호출할 수 있는 메소드입니다.
인스턴스를 생성하는 .new 도 클래스 메소드 중 하나입니다.
클래스 메서드를 정의하기 위해서는 메소드명 앞에 self를 붙여서 정의합니다.
self는 해당 메소드가 속한 클래스를 가리키게 됩니다.
@@Class variables는 클래스 변수이며, 클래스와 해당 인스턴스를 스코프로 하는 변수 입니다.
$global variables는 전역 변수이며, 어느 스코프에서든 사용 가능한 변수입니다.
local variable는 지역 변수이며, 특정 스코프에서만 사용 가능한 변수입니다.
클래스에 정의한 메소드 외에
해당 인스턴스 고유의 메소드를 가질 수 있습니다.