Documentos de Académico
Documentos de Profesional
Documentos de Cultura
io/programacion-orientada-por-objetos-en-ruby/clases-y-objetos
Los atributos son privados y solo pueden ser leídos y modificados dentro del objeto, a
menos de que crees métodos para leerlos y modificarlos.
Puedes utilizar los atajos attr_accessor, attr_reader y attr_writer para que Ruby
cree los métodos para leer y modificar los atributos.
En general, los métodos y atributos de instancia se utilizan mucho más que los
métodos y atributos de clase. Sin embargo, es importante que conozcas para qué
sirven y cómo se definen los métodos y atributos de clase.
Herencia
La herencia es una forma de reutilizar código en la programación orientada a
objetos. A través de herencia, una clase puede recibir los métodos de otra clase.
class Circle
Clase—person
Person.new---objeto
Se pueden almacenar varios objetos de esta clase todos los que necesite
Métodos: son comportamientos que se definen dentro de la clase, pero se realiza sobre los
objetos.
Saludar
Para llamar un método sobre un objeto debes agregar un punto seguido del nombre del método
(p.e. p1.greet)
Reglas de Ruby
Que es una clase: es una plantilla, en la cual se definen métodos y funciones, propiedades, la clase
debe llamarse = al nombre del archivo creado con extensión.rb (cada incio de palabra en
mayúscula. Separador que debe utizarse _
Buenas prácticas: todo lo que va dentro de def = va en minúscula, debe de ir una función por línea,
Parametros de función
Asignacion
Ejemplo
class DocumentoOficio
@oficio = oficio
@numero_oficio = numero_oficio
@fecha = fecha
@Profesion = profesion
@nombre = nombre
@apellidos = apellidos
@departamento = departamento
@presente = presente
@saludo = saludo
@cuerpo_documento =cuerpo_documento
@despedida = despedida
end
def mostra
end
def creador_doc
end
end
Algunos caracteres tienen un significado especial en las expresiones regulares. Para
evitar que se procesen, y poder buscarlos, se usa la secuencia de escape \.
La \ significa "no trates el siguiente carácter como especial". Los caracteres especiales
incluyen: ^, $, ? , ., /, \, [, ], {, }, (, ), + y *.
El comodín . (punto)
Algunas veces, se busca cualquier caracter en una posición determinada. Esto se logra
gracias al . (punto). Un punto, busca cualquier carácter, excepto el retorno de carro.
/.azado/
Clases de caracteres
Una clase de carácter es una lista explícita de caracteres. Para ello se usan los
corchetes:
/[mc]azado/
De esta forma, especificamos la búsqueda de 'azado' precedido por 'c' o 'm': solamente
buscamos 'mazado' o 'cazado'.
Algunas veces se necesita encontrar cualquier carácter menos aquellos de una lista
específica. Este tipo de búsqueda se realiza negando, usando ^ al principio de la clase.
/[0-9]/
/\d/
Todas las abreviaciones precedentes, también tienen una forma negada. Para ello, se
pone la misma letra en mayúsculas
expresión significado
. cualquier caracter
\B no límite de palabra
$ fin de la línea
() agrupar expresiones
/gato|perro/
Condiciones
if,else
En Ruby, nil y false significan falso, todo lo demás (incluyendo true, 0) significan
verdadero. En Ruby, nil es un objeto: por tanto, tiene sus métodos, y lo que es más,
puedes añadir los métodos que se quieran.
xyz = 5
if xyz > 4
puts 'La variable xyz es mayor que 4'
puts 'Puedo poner más instrucciones dentro del if'
if xyz == 5
puts 'Se puede anidar un bloque if,else,end dentro de otro'
else
puts "Parte del bloque anidado"
end
else
puts 'La variable xyz no es mayor que 4'
puts 'También puedo poner múltiples sentencias'
end
elsif
else se ejecutaba si la condición en if no se cumplía. Para poder tomar más
decisiones, en función del valor de la variable, se usa elsif:
#usando if,else anidados
if nombre == 'Mojamuto'
puts 'Pedazo de nombre!!!'
else
if nombre == 'Enjuto'
puts '...este nombre no es moco de pavo...'
end
end
#usando elsif
if nombre == 'Mojamuto'
puts 'Pedazo de nombre!!!'
elsif nombre == 'Enjuto'
puts '...este nombre no es moco de pavo...'
end
#otra modificación, usando el || ("o" lógico)
case
Esta instrucción es muy parecida al if: se crean una serie de condiciones, y se ejecuta
la primera condición que se cumpla. Por ejemplo:
unless
Ruby tiene una forma contraria al if: la instrucción unless. Y digo contraria, por que
en if se ejecutaba el bloque (do … end) si se cumplía la condición; con unless se
ejecutará el bloque mientras NO se cumpla.
nombre = 'Pepe'
unless nombre == 'Enjuto'
puts 'Ese nombre no tiene arte ninguno'
end
=begin
Si el nombre no es Enjuto,
siempre se ejecutará el bloque.
=end