Classes i objectes

1. Definició

En Programació Orientada a Objectes (POO), els dos conceptes bàsics a tractar són les classes i els objectes.

Les classes defineixen el comportament que tindan els objectes.

En un restauran les classes serien la recepta de cada plat. Cada plat representaria un objecte.

Una classe s’encarrega de definir:

  • Atributs
  • Mètodes
  • Camps
  • Events

Tot això és informació que va a tenir un objecte.

En Ruby la convenció és utilitzar majúscula per al nom de la classe i utiitzar CamelCase per a separar les paraules. Per a les variables utilitzarm snake_case.

Una classe comensa per la paraula class i acaba amb la parauala end.

Definirem una classe amb els següents mètodes: play, pause i stop.

El que els diferencia a aquests mètodes dels que hem vis fins ara és que, precisament estan dins d’una classe.

També definirem un atribut: atrr_accessor, amb els seguents atributs :minutes, :title.

Així, centrem l’atenció en la classe:

class Video
  attr_accessor :minutes, :title

  def play
  end

  def pause
  end

  def stop
  end

end

Ara, a continuació crearem un objecte:

Video.new

Guardarem l’objecte dins d’una variable:

video_30_curso_ruby

Així:

video_30_curso_ruby = Video.new

D’aquesta manera parlarem que això és un objecte de la classe Video o una instància de la classe Video.

Ara, aquest objecte:

video_30_curso_ruby = Video.new

Pot executar els mètodes play, pause i stop i canviar els atributs :minutes i :title sense modificar altres objectes.

Així creem més objectes i els imprimirem amb el comandament puts:

video_30_curso_ruby = Video.new

video_30_curso_ruby.title = "Objetos y clases"

video_31_curso_ruby = Video.new

video_31_curso_ruby.title = "Atributos"

puts video_30_curso_ruby = Video.new

puts video_31_curso_ruby = Video.new

2. Fluxe de treball

class Video
  attr_accessor :minutes, :title

  def play
  end

  def pause
  end

  def stop
  end

end


video_30_curso_ruby = Video.new

video_30_curso_ruby.title = "Objetos y clases"

video_31_curso_ruby = Video.new

video_31_curso_ruby.title = "Atributos"

puts video_30_curso_ruby.title

puts video_31_curso_ruby.title

Output

Objetos y clases
Atributos

Cada objecte guarda un estat propi per als seus atributs.

Així l’estat de l’atribut title és Objetos y clases. Per altra banda, l’estat de l’atribut title és Atributos.

Podriem tenir molts objectes, cada objecte va ha tenir el seu propi estat, encara que cada estat estiga generat a partir de la mateixa classe.

Pensar en objectes requereix de pràctica.

Font: Código Facilito