Programmation Ruby/Classes
En programmation objet ou orienté objet, une classe est un modèle d'objet constitué d'attributs (ses variables et constantes), de méthodes (ses fonctions), ainsi que des contraintes d'accès. Les méthodes et attributs peuvent être plus ou moins accessibles aux autres classes ou au programme principal.
En Ruby, par défaut, les attributs ne sont pas accessibles.
Déclaration d'une classe.
Une classe est déclarée à l'aide du mot-clé codice_1 et se termine par le mot-clé codice_2
Les définition de classe étant des constantes, leurs noms doivent commencer par une majuscule en Ruby.
Une classe a au minimum une méthode dite constructeur qui sert à initialiser les objets créés par l'opérateur codice_3.
En Ruby le constructeur est nommé codice_4.
Les méthodes sont définies à l'aide du mot-clé codice_5 et se terminent par le mot-clé codice_2
class Point
 def initialize( x = 0, y = 0 )
 @x = x
 @y = y
 end
 def coords()
 puts "x : #{@x}"
 puts "y : #{@y}"
 end
end
En Ruby, les variables commençant par codice_7 sont des attributs d'objet, les autres sont des variables locales.
@x est donc différent de x et @y est différent de y.
Dans cette méthode codice_4, on a donné des valeurs par défaut aux paramètres (x=0, y=0), cela permet de créer des instances de cette classe sans préciser la valeur des arguments.
Instanciation.
Une instance de la classe (un objet) est créé par la méthode codice_3 de la classe :
 p = Point.new
Ici les valeurs par défaut (0,0) seront utilisées
p.coords
On peut passer des valeurs à la méthode d'initialisation entre parenthèses :
p2 = Point.new(2,5)
p2.coords
On peut obtenir le type de la classe grâce à la méthode codice_1 :
p.class

Programmation Ruby/Héritage
L'héritage permet de créer une classe à partir d'une autre pour l'enrichir, ou la spécialiser. Une classe (classe dérivée, ou classe fille) hérite d'une autre classe (classe de base, ou classe mère).
On peut toujours utiliser les méthodes de la (des) classe(s) mère(s) dans une classe dérivée.
L'opérateur codice_1 précède le nom de la classe de base.
Exemple.
La classe codice_2 vue précédemment :
class Point
 def initialize( x, y )
 @x = x
 @y = y
 end
 def coords
 puts "x : #{@x}"
 puts "y : #{@y}"
 end
end
peut être dérivée en une classe codice_3 représentant un point coloré.
Cette classe possède donc un attribut supplémentaire pour la couleur :
class PointCouleur < Point
 def initialize( x, y, couleur )
 super(x,y) # appel au constructeur de la classe Point
 @couleur = couleur
 end
 def couleur
 puts "couleur : #{@couleur}"
 end
end
Lorsqu'on crée une instance de la classe dérivée, on bénéficie immédiatement des méthodes de celle-ci :
pc = PointCouleur.new(1,2,"rouge")
pc.couleur
Et les méthodes de la classe de base étant héritées, on pourra la réutiliser dans la classe dérivée :
pc.coords
Par contre, la classe de base ne possède pas les méthodes définies dans les classes dérivées.
 p1 = Point.new
 p1.couleur
 => NoMethodError: undefined method `couleur' for #<Point:0xb7c059b0 @x=0, @y=0>

Japonais/Vocabulaire/Grammaire
Ce glossaire regroupe la plupart des termes nécessaires pour étudier la grammaire japonaise en Japonais.

Photographie/Appareils/Familles d'appareils photographiques