Classes
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 end
:
class
Hello definitialize
( name ) @name = name end def hello_matz puts "Hello, " + @name + "!" endend
hi = Hello.new( "Matz" ) hi.hello_matz # => Hello, Matz!
The 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
. initialize
is always private; that is, it is scoped only to the current object, not ...
Get Ruby Pocket Reference now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.