클래스 변수
클래스 변수는 해당 클래스로 만들어진 모든 인스턴스에서 사용이 가능한 변수이다.
인스턴스 변수
인스턴스 변수는 해당 인스턴스에서만 사용가능한 변수이다.
<ruby>
require 'date'
d1 = Date.new(2000, 1, 1)
d2 = Date.new(2010, 1, 1)
p d1.year()
p d2.year()
p Date.today() #Date.today()라는 함수는 현재 날짜를 알려주는 함수.
date라는 클레스를 불러와서 인스턴스를 생성한다 (d1, d2)
d1.year()에서 year()은 인스턴스에 속해있는 method로서 현재 인스턴트의 year에 해당하는 데이터 값을 보여준다.
따라서 d1과 d2의 year() method실행값은 다르다.
같은 함수를 실행시켰지만, 해당 인스턴스의 변수값에 따라 값도 달라지는 것이다.
하지만, Date.today() 를 실행하면 오늘의 날짜를 알려준다.
실행한 방법 조차 기존의 인스턴스에서 method를 실행하는 것이 아니고, 직접 Date라는 클래스에 method를 호출하고
있다.
따라서, 인스턴스 변수/맴버(method) 뿐만 아니라 클래스에도 변수/맴버가 존재한다는 사실이다!!
왜 인스턴스안에 함수를 만들지 않고 클래스 전용으로 따로 만들었을까??
today()는 지금 현재의 시간을 알려주는 것이기 때문에, 인스턴스마다 날짜가 틀리게 저장되는 곳에서는 사용할 수 가
없는 것이다. 따라서 method의 용도에 맞도록, 인스턴스 맴버인지 클래스 맴버인지를 정한다.
'IT 공부 > python' 카테고리의 다른 글
2020-10-10 Python 과 Ruby 재정의 OverRide (0) | 2020.10.10 |
---|---|
2020-10-09 Python 과 Ruby 클래스 맴버 / 클래스 변수 (2) (0) | 2020.10.09 |
2020-10-08 Python 과 Ruby 상속 (2) (0) | 2020.10.08 |
2020-10-08 Python 과 Ruby 상속 (0) | 2020.10.08 |
2020-10-08 Python 과 Ruby 객체 지향 프로그래밍(4) (0) | 2020.10.08 |