In an object-oriented programming language like Ruby, a class is a container that holds properties (class members) such as methods and variables. Classes can inherit properties from a parent or superclass, creating a hierarchy of classes with a base class at the root or top. In Ruby, the base class is
Object. Ruby uses single inheritance—that is, a Ruby class can inherit the properties of only one parent class. (Multiple inheritance, as is used in C++, allows a class to inherit from more than one parent.) You can define more than one class in a single file in Ruby. A class itself is an object, even if you don't directly instantiate it. Classes are always open, so you can add to any class, even a built-in one.
A class is defined with a
class keyword, and the definition concludes with an
initialize( name ) @name = name end def hello_matz puts "Hello, " + @name + "!" end
endhi = Hello.new( "Matz" ) hi.hello_matz # => Hello, Matz!
initialize method defines the instance variable
@name by storing a copy of the
name argument passed into the
initialize method. The
initialize method is a Ruby convention that acts like a class constructor in other languages, but not completely. At this point, the instance is already there, fully instantiated.
initialize is the first code that is executed after the object is instantiated; you can execute just about any Ruby code in
initialize is always private; that is, it is scoped only to the current object, not ...