diff options
Diffstat (limited to 'ruby.html.markdown')
| -rw-r--r-- | ruby.html.markdown | 52 | 
1 files changed, 52 insertions, 0 deletions
| diff --git a/ruby.html.markdown b/ruby.html.markdown index 62db549c..7863ebd2 100644 --- a/ruby.html.markdown +++ b/ruby.html.markdown @@ -251,4 +251,56 @@ surround { puts 'hello world' }  # {  # hello world  # } + + +# Define a class with the class keyword +class Human + +     # A class variable. It is shared by all instances of this class. +    @@species = "H. sapiens" + +    # Basic initializer +    def initialize(name, age=0): +        # Assign the argument to the "name" instance variable for the instance +        @name = name +        # If no age given, we will fall back to the default in the arguments list. +        @age = age +    end + +    # Basic setter method +    def name=(name) +        @name = name +    end + +    # Basic getter method +    def name +        @name +    end + +    # A class method; uses self to distinguish from instance methods. (Can only be called on class, not an instance). + +    def self.say(msg) +       puts "#{msg}" +    end + +    def species +        @@species +    end + +end + + +# Instantiate a class +jim = Human.new("Jim Halpert") + +dwight = Human.new("Dwight K. Schrute") + +# Let's call a couple of methods +jim.species #=> "H. sapiens" +jim.name #=> "Jim Halpert" +dwight.species #=> "H. sapiens" +dwight.name #=> "Dwight K. Schrute" + +# Call the class method +Human.say("Hi") #=> "Hi"  ```
\ No newline at end of file | 
