Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

자본 엄.슴.

Ruby 객체(2) 본문

Ruby

Ruby 객체(2)

자본없음 2019. 2. 2. 22:55

Object

이전에 클래스와 함께 간단히 객체에 대해 공부했었다. 그런데 루비에서는 모든 것이 객체이기 때문에 객체를 좀 더 다뤄볼 필요성이 있다. 루비에서는 심지어 클래스까지도 전부 다 객체다.

우리가 만든 객체는 기본적으로 주어진 몇몇 메서드들을 사용할 수 있다.

class Human
  def initialize(name)
    @name = name
  end
end

kim = Human.new "Kim"

puts kim.class
puts kim.object_id
puts kim.nil?

결과

Human
26665240
false

class메서드는 해당 객체가 어떤 클래스의 인스턴스인지 알려주는 메서드이다. object_id메서드는 객체의 고유 id를 반환하고 nil?메서드는 해당 객체가 nil인지 아닌지를 불린으로 반환한다. 우리는 분명 어떤 메서드도 정의하지 않았지만 몇몇 기본 메서드를 사용할 수 있다. 이것은 대부분의 루비 클래스가 Object클래스를 상속 받고 있기 때문이다. 클래스가 어떠한 다른 클래스도 상속 받지 않으면 기본적으로 Object클래스를 상속 받는다.

class Human
  def initialize(name)
    @name = name
  end
end

puts Human.superclass

결과

Object

객체 변경과 복사

freeze 메서드는 객체 변경을 금지시킬 수 있다. 변경이 금지된 상태를 frozen 되었다고 하며 객체가 frozene된 상태인지 확인하고 싶으면 frozen?메서드를 사용하면 된다. 일단 freeze된 객체는 다시 원래대로 돌아올 수 없다.

class Human
  def initialize(name)
    @name = name
  end
end

kim = Human.new "Kim"

kim.freeze
puts kim.frozen?

결과

true

'Ruby' 카테고리의 다른 글

Ruby 심볼  (0) 2019.02.08
Ruby 문자열  (0) 2019.02.06
Ruby 모듈  (0) 2019.01.31
Ruby 싱글톤 메서드  (0) 2019.01.30
Ruby 접근 제어자, 상속  (0) 2018.12.11
Comments