Ruby is a pure object oriented language and everything in ruby is an object of some class. In ruby we can create classes and create objects of the classes. In the below example we will create 3 classes Person, Address and Company. An object of a class can be created with public method new. Internally this public method(new) calls private method initialize. Initialize works as a constructor of the class.
Setter method: The setter method sets the value of instance variable for the object.
Getter method: The getter method get the value of instance variable of the object
class Person
def initialize(name, age, email, gender)
@name = name
@age = age
@email = email
@gender = gender
@addresses = []
end
def add_new_address(address)
addresses << address
end
def name
@name
end
def age
@age
end
def email
@email
end
def gender
@gender
end
def addresses
@addresses
end
end
class Address
def initialize(city, zip, country)
@city = city
@zip = zip
@country = country
end
def city
@city
end
def zip
@zip
end
def country
@country
end
end
class Company
def initialize(name, address)
@name = name
@address = address
@employees = []
end
def employees
@employees
end
def add_employee person
employees << person
end
end
Using classes to create objects:
creating objects of address class
address1 = Address.new("Delhi", 110018, "India")
address2 = Address.new("Dehradun", 248001, "India")
address2 = Address.new("Punjab", 258008, "India")
creating objects of person class
person1 = Person.new('Martin', 22, "martin@yahoo.com", "Male")
person2 = Person.new('Virat', 22, "virat@yahoo.com", "Male")
person3 = Person.new('Priya', 22, "priya@yahoo.com", "Female")
adding address to person
person1.add_new_address(address1)
person1.add_new_address(address2)
person2.add_new_address(address3)
person2.add_new_address(address2)
person3.add_new_address(address3)
person3.add_new_address(address1)
creating objects of company class and add employees
company = Company.new("Evontech", address2)
company.add_employee(person1)
company.add_employee(person2)
company.add_employee(person3)
showing all employees of company
company.employees
first employee
company.employees[0]
name of first employee
company.employees[0].name
addresses of first employee
company.employees[0].addresses
last address of first employee
company.employees[0].addresses[-1]
0 Comment(s)