ruby menyediakan access control public, private, protected. c++ juga
menyediakan access level public, private, protected. tapi di c++ ada friend
untuk mendeklarasikan bahwa sebuah class lain boleh mengakses private,
protected methods. misalkan class Foo punya private method foo(), maka class
Bar yg adalah friend dari Foo boleh mengakses Foo.foo().

di ruby tidak ada friend, kenapa? karena tidak perlu, karena access control di
ruby sifatnya advisory. private methods dng gampang diakses dari luar, jika
diperlukan.

class Foo
  def self.foo
    puts "foo"
  end
  class << self
    private :foo
  end
end

class Foo
  def self.another_foo
    foo
  end
end

Foo.foo # private method `foo' called for Foo:Class (NoMethodError)
Foo.another_foo # foo

mungkin ada yg bertanya, gunanya utk apa? 
sebuah contoh misalkan kita mau membuat unit test utk private methods. 
i.e. class TestFoo < Test::Unit::TestCase butuh mengakses Foo.foo

rgds,
Edwin.




      ________________________________________________________ 
Bergabunglah dengan orang-orang yang berwawasan, di di bidang Anda! Kunjungi 
Yahoo! Answers saat ini juga di http://id.answers.yahoo.com/

Kirim email ke