[JAVA] [Ruby] Est-ce que self fait référence à une classe ou à une instance?

Conclusion

self peut faire référence à la fois aux classes et aux instances.

Contexte

Pour moi, l'image qui pointe vers une instance était plus forte, mais j'ai récemment appris qu'elle pointe vers une classe, alors je l'ai résumée. J'ai entendu dire que "ruby est le même que celui-ci en java", mais je ne sais toujours pas si c'est exactement le même. J'ai oublié cela en Java maintenant.

Expérience

class ClassA
  def foo       #Méthode d'instance
    puts "ins_foo"
    puts self #Ce moi est une instance(Instance de classe A)Pointer vers
  end

  def self.foo  #Méthode de classe(Ce moi est la classe elle-même(ClassA)Pointer vers)
    puts "self_foo"
    puts self #Ce moi est la classe elle-même(ClassA)Pointer vers
  end
end
ClassA.foo
# self_foo
# ClassA #Pointant vers une classe
ClassA.new.foo
# ins_foo
# #<ClassA:0x00007f93108144d0> #Pointant vers une instance

J'ai lu que lors de la définition d'une méthode de classe, ajoutez self., mais ce self fait référence à la classe.

Recommended Posts

[Ruby] Est-ce que self fait référence à une classe ou à une instance?
Comment vérifier si une variable d'instance est définie dans une classe Ruby
[Ruby] Relation entre la classe parent et la classe enfant. Relation entre classe et instance.
Comment installer Ruby sur une instance EC2 d'AWS
Comment changer une chaîne dans un tableau en un nombre dans Ruby
[Ruby] Qu'est-ce qu'une instance?
Qu'advient-il des variables d'instance lors de la copie d'une instance avec ruby
Comment gérer les instances
[Java] Une classe est un système d'exploitation et une instance est un ordinateur virtuel.
[Ruby] Méthodes de classe, méthodes d'instance, etc.
Comment créer un serveur Web sur une instance EC2 d'AWS
Facile à comprendre la différence entre la méthode d'instance Ruby et la méthode de classe.
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
Référence implicite à l'objet englobant détenu par la classe imbriquée non statique
Déployer une application Node.js sur une instance ECS à l'aide du Cloud Toolkit
Pourquoi attribuer ArrayList à la liste
Pourquoi Java appelle-t-il un fichier une classe?
Comment définir un bean de classe interne
Comment obtenir n'importe quel numéro de chiffre à partir de 2 chiffres ou plus! !!
Comment démarrer un indice à partir d'un nombre arbitraire dans le traitement itératif Ruby