Advertisement
solidsnake

11/19

Nov 18th, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.45 KB | None | 0 0
  1. CLASSES
  2.  
  3. require './pet.rb'
  4. class Person
  5.     attr_accessor :first_name, :last_name, pet      #this accepts a special argument; function that declares certain properties in your class; attr_accessor will create an instance for your class
  6.  
  7.     def initialize(first_name, last_name)
  8.         @first_name = first_name
  9.         @last_name = last_name
  10.  
  11.     def to_s    #calls get_name which we have defined and then creates a functionality of a string of Person for each instance
  12.         get_name
  13.     end
  14.  
  15.     def walk
  16.         puts "Walking"
  17.     end
  18.    
  19.     def get_name #returns first name and last name
  20.         "#{@first_name @last_name} #@last_name)"    #string
  21.     end
  22.     def set_first_name(first_name)
  23.         @first_name = first_name
  24.     end
  25.    
  26.     def set_last_name(last_name)
  27.         @last_name = last_name
  28.     end
  29.  
  30.     def give_pet(pet)
  31.         @pet = pet
  32.     end
  33.  
  34.    
  35. end
  36.  
  37. class Animal
  38.     attr_accessor :animal_type
  39.    
  40.     def breathe
  41.         puts "Animal is breathing"
  42.     end
  43. end
  44.  
  45. require './animal.rb'
  46. class Pet < Animal #inheritance in Ruby is shown through "<"
  47.     attr_accessor :name
  48.    
  49.     def initialize(name)
  50.         @name = name
  51.     end
  52.  
  53. RUNNER
  54.  
  55. require "./person"
  56. require "./pet"
  57. p1 = Person.new("Mikey", "Raymundo")
  58. pet1 = Pet.new("Lassie")
  59. p1.give_pet(pet1)
  60.  
  61. puts "Person name: #{p1.get_name}"
  62. puts "Pet name #{p1}: #{p1.pet.get_name}"
  63.  
  64. **symbol is a pointer that points to an entity in your program
  65. **vim
  66. **program.rb
  67. **all classes have xx.new which is the constructor
  68. **require './person.rb'
  69.  
  70. looping
  71. 3.times do
  72.     p1.walk
  73. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement