Classes & Objects
Methods
You can define methods at the class level and the object level.
class MyClass
def self.doSomething()
...
end
def doSomething()
...
end
endIn the example above, we have defined doSomething twice. However the two methods are subtly different.
In the first case we've defined a class method. So, if we call MyClass.doSomething() then the code inside the first method will be used.
If we instantiate a MyClass object and call the same method again:
MyClass.new.doSomething()where MyClass.new is an object instance of the MyClass class, then the second version of the method will be called.
The key is if the method has self in front of it, then it is a class method, otherwise it is an object method.
Inheritance
Inheritance is denoted with the < symbol:
Object constructors
Object constructors are defined in the initialize method of a class:
Instance variables
Instance variables are denoted using the @ symbol before the variable. In the example above we see @parameter variable, which we set to the argument that is passed to the constructor. You can access instance variables. Taking the above example again, and assuming you have defined a getter somehow (see below), you would access parameter by calling
There is a shorthand for assigning instance variables in a constructor:
Getters
Instance variables do not have getters by default. You can either define your own, or you can use the property or getter keywords in front of the instance variable name:
either of these keywords allows you to now call my_class_instance.variable_name
Class variables
Like instance variables, you can also define class variables using @@. These are like static variables in languages such as Java, and are consistent across all instances of a class.
Last updated
Was this helpful?