클래스 속성과 클래스 메소드

클래스 객체나 클래스에 저장된 모든 인스턴스의 공통적인 특징을 저장하기 위한 클래스 속성을 생성할 수 있다. 클래스 메소드는 클래스 객체에 대한 연산을 위해 생성된다. 클래스 속성이나 메소드를 생성하기 위해서는 속성이나 메소드 이름 앞에 CLASS라는 키워드를 사용한다. 클래스 속성은 인스턴스와 관련이 있다기 보다는 클래스 자체와 관련이 있기 때문에 클래스 속성의 값은 하나의 값만 존재한다. 예를 들어, 클래스 속성은 클래스 메소드에 의해 결정되는 평균값을 저장하거나, 클래스가 생성된 timestamp 값을 저장할 수 있다. 클래스 메소드는 클래스 객체 자체를 대상으로 메소드가 수행된다. 클래스 메소드는 클래스에 저장된 인스턴스 값에 대한 집합 값을 계산하는 용도로 사용될 수 있다.  

서브클래스가 수퍼클래스를 상속할 때, 각 클래스는 클래스 속성을 위한 별도의 저장 공간을 가지므로 두 클래스의 클래스 속성은 서로 다른 값을 가질 수 있다. 따라서 수퍼클래스의 클래스 속성에 대한 값 변경은 서브클래스에 영향을 주지 않는다.

클래스 속성이나 메소드의 이름은 같은 클래스의 다른 인스턴스 이름, 속성이나 메소드의 이름과 동일할 수 있다.