Back-end Engineering Articles
I write and talk about backend stuff like Ruby, Ruby On Rails, Databases, Testing, Architecture / Infrastructure / System Design, Cloud, DevOps, Backgroud Jobs, and more...
2019-08-30
#1. Class declaration class Person #2. Constructor method called "initialize" def initialize(name) @name = name end # 3. Behavior or logic to apply in each instance def greet "Hello #{@name}!" end end #4. Instantiation p1 = Person.new("Ana") p2 = Person.new("Daniel") p3 = Person.new("Matz") #5. Printing out and calling "greet" class method puts p1.greet puts p2 puts p3.greet
➜ blog_tutorials ruby oop.rb Hello Ana! #<Person:0x0000000000a6eca8> Hello Matz!
#1. Class declaration class Person #2. Constructor method called "initialize" def initialize(name) @name = name end # 3. Behavior or logic to apply in each instance def greet "Hello #{@name}!" end #4. Getter method. @name can be read from the outside def name @name end end #5. Instantiation p1 = Person.new("Ana") p2 = Person.new("Daniel") p3 = Person.new("Matz") #6. Printing out and calling a class method in some of them puts p1.greet puts p2 puts p3.greet #7. Getting the method from outside the class p4 = Person.new("Mary") puts p4.name
➜ blog_tutorials ruby oop.rb Hello Ana! #<Person:0x000000000235b338> Hello Matz! Mary
#1. Class declaration class Person #2. Constructor method called "initialize" def initialize(name, age, gender) @name = name @age = age @gender = gender end # 3. Behavior or logic to apply in each instance def greet "Hello #{@name}!" end #4. Getter methods. @name, @age and @gender can be read from the outside def name @name end def age @age end def gender @gender end end #5. Instantiation p1 = Person.new("Ana", 25, "Female") p2 = Person.new("Daniel", 29, "Male") p3 = Person.new("Matz", 30, "Male") #6. Printing out and calling a class method in some of them puts p1.greet puts p2 puts p3.greet #7. Getting the method from outside the class p4 = Person.new("Mary", 28, "Female") puts p4.name, p4.age, p4.gender
➜ blog_tutorials ruby oop.rb Hello Ana! #<Person:0x00000000027fef70> Hello Matz! Mary 28 Female
#1. Class declaration class Person #2. Getter methods. @name, @age and @gender can be read from the outside attr_reader :name, :age, :gender #3. Constructor method called "initialize" def initialize(name, age, gender) @name = name @age = age @gender = gender end # 4. Behavior or logic to apply in each instance def greet "Hello #{@name}!" end end #5. Instantiation p1 = Person.new("Ana", 25, "Female") p2 = Person.new("Daniel", 29, "Male") p3 = Person.new("Matz", 30, "Male") #6. Printing out and calling a class method in some of them puts p1.greet puts p2 puts p3.greet #7. Getting the method from outside the class p4 = Person.new("Mary", 28, "Female") puts p4.name, p4.age, p4.gender
➜ blog_tutorials ruby oop.rb Hello Ana! #<Person:0x0000000001dd30c8> Hello Matz! Mary 28 Female
#1. Class declaration class Person #2. Getter methods. @name, @age and @gender can be read from the outside attr_reader :name, :age, :gender #3. Constructor method called "initialize" def initialize(name, age, gender) @name = name @age = age @gender = gender end # 4. Behavior or logic to apply in each instance def greet "Hello #{@name}!" end # 5. Setter for @name instance variable def name=(name) @name = name end end #6. Instantiation p1 = Person.new("Ana", 25, "Female") p2 = Person.new("Daniel", 29, "Male") p3 = Person.new("Matz", 30, "Male") #7. Printing out and calling a class method in some of them puts p1.greet puts p2 puts p3.greet #8. Getting the method from outside the class p4 = Person.new("Mary", 28, "Female") puts p4.name, p4.age, p4.gender #9. Setting a new Name (editing instance variable) p4.name=("Maria") puts p4.name
➜ blog_tutorials ruby oop.rb Hello Ana! #<Person:0x000000000282ece8> Hello Matz! Mary 28 Female Maria
# 5. Setter for @name instance variable def name=(name) @name = name end
#1. Class declaration class Person #2. Getter methods. @name, @age and @gender can be read from the outside attr_reader :name, :age, :gender #3. Setter method for name attr_writer :name #4. Constructor method called "initialize" def initialize(name, age, gender) @name = name @age = age @gender = gender end # 5. Behavior or logic to apply in each instance def greet "Hello #{@name}!" end end #6. Instantiation p1 = Person.new("Ana", 25, "Female") p2 = Person.new("Daniel", 29, "Male") p3 = Person.new("Matz", 30, "Male") #7. Printing out and calling a class method in some of them puts p1.greet puts p2 puts p3.greet #8. Getting the method from outside the class p4 = Person.new("Mary", 28, "Female") puts p4.name, p4.age, p4.gender #9. Setting a new Name (editing instance variable) p4.name=("Maria") puts p4.name
➜ blog_tutorials ruby oop.rb Hello Ana! #<Person:0x00000000026a6e70> Hello Matz! Mary 28 Female Maria
#1. Class declaration class Person #2. Getter methods. @name, @age and @gender can be read from the outside attr_accessor :name, :age, :gender #3. Constructor method called "initialize" def initialize(name, age, gender) @name = name @age = age @gender = gender end # 4. Behavior or logic to apply in each instance def greet "Hello #{@name}!" end end #5. Instantiation p1 = Person.new("Ana", 25, "Female") p2 = Person.new("Daniel", 29, "Male") p3 = Person.new("Matz", 30, "Male") #6. Printing out and calling a class method in some of them puts p1.greet puts p2 puts p3.greet #7. Getting the method from outside the class p4 = Person.new("Mary", 28, "Female") puts p4.name, p4.age, p4.gender #8. Setting a new Name (editing instance variable) p4.name=("Maria") puts p4.name
➜ blog_tutorials ruby oop.rb Hello Ana! #<Person:0x00000000020f6e30> Hello Matz! Mary 28 Female Maria