À propos des classes et des instances Ruby

Journal d'étude de programmation

11 juillet 2020 Progression du niveau 175 RubyⅣ

Classes et instances

Cette section décrit brièvement les classes et les instances. Afin de créer une «chose» appelée menu par programmation, le dessin de conception est d'abord requis. Le dessin de conception est appelé une classe et la «chose» est appelée une instance. (Créez une «chose» (instance) basée sur le dessin de conception (classe)), préparez donc une classe pour créer une instance, créez une instance à partir de la classe et ajoutez des informations à l'instance.

Définition de classe

Les classes peuvent être définies avec «nom de classe de classe». Assurez-vous de démarrer la classe avec des lettres majuscules et n'oubliez pas d'écrire ʻend`. </ font>

index.rb


class Menu
end

attr_accessor Celui qui vous permet de modifier directement la variable d'instance et de l'exploiter. Écrivez ʻattr_accessor symbol` pour avoir des informations. Vous pouvez également utiliser plusieurs variables d'instance pour une classe.

index.rb


class Menu
  attr_accessor :name
end

Génération d'instance

Pour créer une nouvelle instance basée sur la classe, utilisez class name.new. La variable d'instance générée peut être affectée en définissant nom de variable = nom de classe.new. Pour donner des informations à une instance, attribuez une valeur à la variable d'instance préparée par la classe. Vous pouvez définir une valeur dans une variable d'instance avec ʻinstance.variable name = value`.

index.rb


class Menu
  #En traitement
end
#Créez une instance à partir de la classe Menu et affectez-la à la variable menu1
menu1=Menu.new
menu1.name="Sushi"

Utiliser des méthodes en classe

La méthode définie dans la classe est appelée telle qu'elle est utilisée pour l'instance. Appel avec ʻinstance.method name`. Une méthode qui appelle une méthode définie dans une classe est appelée une méthode d'instance.

index.rb


class Menu
  attr_accessor :name
  attr_accessor :price
  #Définir une méthode dans une classe
  def show
    puts "menu"
  end
end
menu1=Menu.new
#Appel d'une méthode définie dans une classe
menu1.show

console


menu

Méthode d'instance

Une méthode à appeler pour une instance définie dans une classe. Il peut accepter des arguments et renvoyer des valeurs. La "variable d'instance" qui correspond aux informations dont dispose l'instance et la méthode d'instance appelée pour l'instance sont définies dans la classe.

index.rb


class Menu
  #En traitement
  def show(data)
    return "#{data}est"
  end
end
menu1=Menu.new
puts menu1.show("menu")

console


C'est un menu

Utiliser des variables d'instance dans les méthodes d'instance

Les variables d'instance peuvent être gérées en utilisant une variable spéciale «self» dans la méthode d'instance et en la définissant sur «self.variable name». Dans la méthode d'instance, l'instance appelée elle-même est affectée à la variable «self».

index.rb


class Menu
  #En traitement
  def show_name
    puts "#{self.name}est"
  end
end
menu1=Menu1.new
menu1.name="Sushi"
#Invocation de la méthode d'instance
menu1.show_name

console


C'est des sushis

méthode d'initialisation

Le traitement peut être exécuté immédiatement après la création d'une instance. Appelé automatiquement immédiatement après la création d'une instance avec nom de classe.new.

index.rb


class Menu
  #En traitement
  def initialize
    puts "menu"
  end
end
#Menu.Appelez automatiquement la méthode initialize lorsque new est exécuté
menu1=Menu.new

console


menu

Dans la méthode d'instance, vous pouvez gérer la variable d'instance avec «self.variable name» et affecter la valeur à la variable d'instance avec «self.variable name = value».

index.rb


class Menu
  #En traitement
  def initialize
    self.name="Sushi"
  end
end
menu1=Menu.new
puts menu1.name

console


Sushi

Variable de la méthode d'initialisation

Vous pouvez également passer des arguments à la méthode initialize. Vous pouvez passer la valeur en passant un argument à class.new. Bien entendu, des arguments de mots clés peuvent également être utilisés.

index.rb


class Menu
  #En traitement
  def initialize(message)
    puts message
  end
end
menu1=Menu.new("Hello")

console


Hello

require Lisez le fichier. (Utilisé lorsque l'instruction principale est séparée et que vous souhaitez lire une classe dans un autre fichier)

index.rb


requie "./menu"
menu1=Menu.new(name: "Sushi"

menu.rb


class Menu
  attr_accessor :name
  attr_accessor :price
end

gets.chomp Utilisé lors de l'acceptation d'une entrée. Lorsque ce code est exécuté, la console passe dans un état d'attente d'entrée. En définissant variable = gets.chomp, la valeur d'entrée peut être affectée à la variable jusqu'à ce que la touche Entrée soit enfoncée.

index.rb


puts "Entrez le nom"
name=gets.chomp
puts "Quel est votre nom#{name}est"

console


Entrez le nom
Tanaka (Entrée)
Votre nom est Tanaka

Si vous voulez recevoir un nombre, vous pouvez convertir l'entrée en nombre en faisant gets.chomp.to_i.

index.rb


puts "Entrez des nombres"
number=gets.chomp.to_i #Convertir le contenu saisi en une valeur numérique
puts "#{number}Deux fois#{number*2}est"

Recommended Posts

À propos des classes et des instances Ruby
[Ruby] Classes et instances
À propos des classes et des instances
Classes et instances Ruby
À propos des classes et des instances (évolution)
Prise en compte des classes et des instances
Création de classes et d'instances Ruby
Différences entre les classes et les instances dans Ruby
Écrire du code à l'aide de classes et d'instances Ruby
java (classe et instance)
Premiers pas avec Java_Chapter 8_A propos des "Instances" et des "Classes"
À propos des hachages et symboles Ruby
À propos de Ruby, modèle objet
[Ruby] Méthodes singulières et classes singulières
Méthodes et classes Ruby (basiques)
À propos des guillemets simples et doubles Ruby
[Ruby] Classes, variables d'instance, instances, etc ...
Organiser les classes, les instances et les variables d'instance
À propos de l'opérateur de produit Ruby (&) et de l'opérateur somme (|)
À propos de l'héritage orienté objet et du rendement Ruby
Classes et instances Java pour les débutants
À propos des symboles Ruby
Programmation Java (classes et instances, méthodes principales)
À propos de la classe standard
À propos des tableaux Ruby
À propos de l'héritage Ruby
À propos de Ruby Hash
À propos des symboles Ruby
Comparaison des objets JavaScript et des classes Ruby
Rubis et gemme
À propos des méthodes Ruby
À propos du module Ruby's Kernel
À propos des messages d'erreur Ruby
Symboles et rubis destructeur
Classes HashMap et HashSet
À propos de Ruby Hash (suite)
Littéraux de chaîne et instances
À propos de Bean et DI
[Java] À propos des classes anonymes
À propos de gets et gets.chomp
À propos de la redirection et du transfert
Héritage et délégation Ruby
À propos de l'encapsulation et de l'héritage
Liste et cours heureux
À propos de Serializable et serialVersionUID
Réflexion sur la logique Ruby
[Ruby] J'ai réfléchi à la différence entre each_with_index et each.with_index
Une note approximative sur les tableaux Ruby et les objets de hachage
[Note technique] À propos des avantages et des inconvénients de Ruby