forked from simon0191/platzi-curso-ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path11_clases_y_objetos.rb
61 lines (49 loc) · 1004 Bytes
/
11_clases_y_objetos.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# clases y objetos
class Persona
def initializer(nombre)
@nombre = nombre
end
def nombre=(nombre)
@nombre = nombre
end
def nombre
@nombre
end
def self.suggested_names
["Pepe", "Pepito", "Sutano", "Sutanito"]
end
end
Persona.suggested_names
matz = Persona.new("Matz")
matz.nombre
matz.nombre = "Matzumoto"
matz.nombre
# con attr_accessor
class Mascota
attr_accessor :nombre, :edad
def initializer(nombre, edad)
@nombre = nombre
@edad = edad
end
def self.suggested_names
["Pepe", "Pepito", "Sutano", "Sutanito"]
end
end
Mascota.methods - Class.methods
Mascota.new.methods
Mascota.new.methods - Object.new.methods
Mascota.suggested_names
milo = Mascota.new("Milo", 3)
milo.nombre
milo.edad = 14
milo.edad
# con Struct
Empleado = Struct.new(:nombre, :edad) do
def self.suggested_names
["Pepe", "Pepito", "Sutano", "Sutanito"]
end
end
Empleado.methods
Empleado.new.methods
Empleado.new.methods - Object.new.methods
pepe = Empleado.new