Je ne comprenais pas la portée des champs de classe, des méthodes de classe, des méthodes d'instance et la portée de l'effet des variables d'instance, alors je les ai résumées.
J'ai approfondi ma compréhension, mais un nouveau mystère est né.
Je vous serais reconnaissant si vous pouviez me dire des suggestions ou des suppléments.
class Zoo
def self.kind(animal_name)
@animal_name = animal_name
puts @animal_name #production:Girafe
puts animal_name #production:Girafe
puts @name #production:Vide
puts name #production:Zoo
end
def self.kind_name
puts @animal_name #production:Girafe
# puts animal_name #production:NameError
end
puts @animal_name #production:Vide
# puts animal_name #production:NameError
def initialize(new_animal)
@new = new_animal
puts "#{@new}A augmenté." #production:新たな仲間A augmenté.
end
def kind(name)
@name = name
puts @animal_name #production:Vide
# puts animal_sortie de nom:NameError
puts @name #production:Lion
puts name #production:Lion
end
puts @name #production:Vide
puts name #production:Zoo
def color(animal_color)
@color = animal_color
#met la sortie de nom:NameError
puts "#{@new}de#{@name}Est#{@color}est" #production:新たな仲間deライオンEst黄色est
#met la sortie de nom:NameError
end
end
Zoo.kind("Girafe")
#Méthode de classe auto.Bonne exécution
Zoo.kind_name
#Méthode de classe auto.kind_Nom de la course
animal = Zoo.new("Nouveau compagnon")
#Créer une instance animale, exécuter la méthode initialize
puts animal.kind("Lion")
#Exécution de la méthode d'instance kind de l'instance animale
puts animal.color("Jaune")
#Exécution de la méthode d'instance de couleur de l'instance animale
#↓ Hors de portée
# puts @animal_sortie de nom:Vide
# puts animal_sortie de nom:NameError
# puts @sortie de nom:Vide
#met la sortie de nom:NameError
Zoo
Girafe
Girafe
Zoo
Girafe
De nouveaux amis ont été ajoutés.
Lion
Lion
Le nouveau compagnon lion est jaune
-Le contenu de sortie sera le contenu lu dans l'ordre à partir du haut, y compris la partie classe.
-Les variables d'instance sont entre les méthodes de classe ou entre les méthodes d'instance. Il est possible de sortir les uns des autres. Cependant, comme vous ne pouvez pas créer d'instance dans une méthode de classe, @ Est juste un tube qui relie les méthodes de classe.
-Bien que la variable d'instance ne provoque pas d'erreur de nom même si elle est placée en dehors de la portée, Il crée un vide dans la destination de sortie.
-Pourquoi dans un champ de classe autre qu'une méthode d'instance (y compris une méthode de classe) Le nom de la classe est-il généré lorsqu'un nom non défini est généré?
Recommended Posts