xxxxxxxxxx
Classes in Ruby are first-class objects—each is an instance of class Class . When a new class is created, an object of type Class is initialized and assigned to a global constant ( Name in this case). Classes, modules, and objects are interrelated.
xxxxxxxxxx
class SampleHumanClass
attr_accessor :name, :age, :gender
@@all = []
def initialize(name, age, gender)
@name = name
@age = age
@gender = gender
@@all << self
end
def self.all
@@all
end
end
#now we can create an instance of the class
mike = SampleHumanClass.new("Mike", 32, "Male")
xxxxxxxxxx
class Dog # Initialize class!
def initialize(name) # Initialize function of class Dog
@name = name # Set name to param in class
end
def print_name() # Function to print out the name in params
puts @name # Puts!
end
end
my_dog = Dog.new "Bruno" # Create class and save it in variable
my_dog.print_name # Call print_name function from class
# Output:
# Bruno
xxxxxxxxxx
class Person
def initialize(name) # this is an empty class
end
end
p1 = Person.new("Ben")
class Person
def initialize(name)
@name = name #This is an instance variable
end
end
p1 = Person.new("Ben")
#To recall the name
class Person
def initialize(name)
@name = name
end
def name
@name
end
end
#We can call the above
p2=Person.new("Brian")
puts p2.name
#Attribute writers
class Person
def initialize(name)
@name = name
end
def name
@name
end
def password=(password)
@password = password
end
end
p3=Person.new("Margret")
p3.password = "lovydovy"
p p3
xxxxxxxxxx
class Library
attr_accessor :title, :author
def readBook()
puts "Reading #{self.title} by #{self.author}"
end
end
book1 = Library.new()
book1.title = "Shreds of tenderness"
book1.author = "Dr Mwaniki"
book1.readBook()
puts book1.title