[JAVA] [Ruby] Bezieht sich self auf eine Klasse oder eine Instanz?

Fazit

self kann sich sowohl auf Klassen als auch auf Instanzen beziehen.

Hintergrund

Für mich war das Bild, das auf eine Instanz verweist, stärker, aber ich habe kürzlich erfahren, dass es auf eine Klasse verweist, also habe ich es zusammengefasst. Ich habe gehört, dass "Ruby das gleiche ist wie dieses in Java", aber ich weiß immer noch nicht, ob es genau das gleiche ist. Ich habe das jetzt in Java vergessen.

Experiment

class ClassA
  def foo       #Instanzmethode
    puts "ins_foo"
    puts self #Dieses Selbst ist eine Instanz(Klasse-A-Instanz)Zeigen auf
  end

  def self.foo  #Klassenmethode(Dieses Selbst ist die Klasse selbst(ClassA)Zeigen auf)
    puts "self_foo"
    puts self #Dieses Selbst ist die Klasse selbst(ClassA)Zeigen auf
  end
end
ClassA.foo
# self_foo
# ClassA #Auf eine Klasse zeigen
ClassA.new.foo
# ins_foo
# #<ClassA:0x00007f93108144d0> #Auf eine Instanz zeigen

Ich habe gelesen, dass beim Definieren einer Klassenmethode "self" hinzugefügt wird, aber dieses self bezieht sich auf die Klasse.

Recommended Posts

[Ruby] Bezieht sich self auf eine Klasse oder eine Instanz?
So überprüfen Sie, ob eine Instanzvariable in einer Ruby-Klasse definiert ist
[Ruby] Beziehung zwischen Elternklasse und Kinderklasse. Beziehung zwischen Klasse und Instanz.
So installieren Sie Ruby auf einer EC2-Instanz von AWS
So ändern Sie eine Zeichenfolge in einem Array in eine Zahl in Ruby
[Ruby] Was ist eine Instanz?
Was passiert mit Instanzvariablen beim Kopieren einer Instanz mit Ruby?
Umgang mit Instanzen
[Java] Eine Klasse ist ein Betriebssystem und eine Instanz ist ein virtueller Computer.
[Ruby] Klassenmethoden, Instanzmethoden usw.
So erstellen Sie einen Webserver auf einer EC2-Instanz von AWS
Der Unterschied zwischen der Ruby-Instanzmethode und der Klassenmethode ist leicht zu verstehen.
Ich habe versucht, ein übergeordnetes Wertklasseobjekt in Ruby zu erstellen
Impliziter Verweis auf das einschließende Objekt, das von der nicht statisch verschachtelten Klasse gehalten wird
Bereitstellen einer Node.js-Anwendung auf einer ECS-Instanz mithilfe des Cloud Toolkit
Warum ArrayList der Liste zuweisen?
Warum nennt Java eine Datei eine Klasse?
So definieren Sie eine Bean der inneren Klasse
So erhalten Sie eine beliebige Ziffernnummer aus 2 oder mehr Ziffern! !!
So starten Sie einen Index aus einer beliebigen Zahl in der iterativen Ruby-Verarbeitung