domingo, 2 de marzo de 2014

Programando en Ruby ... no. 4

Herencia en Ruby

En esta ocasión crearemos una clase base llamada Persona y dos clases hijas:

  • Alumno y
  • Profesor
Empezamos creando la clase Persona, con dos propiedades:
  • nombre y
  • edad

class Persona
  attr_accessor :nombre , :edad


  def initialize(nombre,edad)
    @nombre, @edad=nombre, edad
  end

#setters y getters

#setter
  def nombre=(nombre)
    @nombre=nombre
  end

#getter
  def nombre
    @nombre
  end

#setter
  def edad=(edad)
    @edad=edad
  end

#getter
  def edad
    @edad
  end

end

¿Cómo se puede heredar en Ruby?
Se debe seguir esta síntaxis:
claseBase < claseHija
      ...
      ...
end

Ahora las clases hijas:Alumno y Profesor:

class Alumno < Persona
  attr_accessor  :no_cta

  def initialize(no_cta)
    @no_cta=no_cta
  end

 #setter
  def no_cta=(no_cta)
    @no_cta=no_cta
  end

#getter
  def no_cta
    @no_cta
  end

end

class Profesor < Persona
  attr_accessor :materias

  def initialize(materias)
    @materias=materias
  end

#setter
  def materias=(materias)
    @materias=materias
  end

#getter
  def materias
    @materias
  end

end

#main
begin
  alumno=Alumno.new(2132)
  alumno.nombre=("Andrea Landa")
  alumno.edad=(18)

  profesor=Profesor.new(["matematicas","fisica"])
  profesor.nombre=("Mario Pedrosa")
  profesor.edad=(45)

  puts "Alumno:"
  puts "\tno. cta: #{alumno.no_cta}"
  puts "\tnombre: #{alumno.nombre}"
  puts "\tedad: #{alumno.edad}"

  puts "Profesor:"
  puts "\tmaterias: #{profesor.materias}"
  puts "\tnombre: #{profesor.nombre}"
  puts "\tedad: #{profesor.edad}"

  
rescue Exception => e
  puts "Error: #{e}"
end

Puedes guardar el archivo como diamante.rb



Links
http://www.cristalab.com/blog/por-que-aprender-ruby-on-rails-c109181l/


No hay comentarios:

Publicar un comentario

Claude Code: un nuevo enfoque de la programación por pares

Claude Code es una herramienta de inteligencia artificial creada por Anthropic que funciona directamente en la terminal. Sirve para acele...

Etiquetas

Archivo del blog