Der Unterschied zwischen der Ruby-Instanzmethode und der Klassenmethode ist leicht zu verstehen.

Einführung

Bis jetzt habe ich die wichtigen Konzepte von Ruby wie Instanzen und Klassen nicht klar verstanden, daher werde ich sie anhand von Beispielen erläutern. Ich denke, es ist etwas, das Sie unbedingt wissen müssen, um Ruby zu verwenden, aber es war nicht leicht zu verstehen.

Betreff dieses Artikels

・ Für diejenigen, die Ruby noch nicht kennen ・ Personen, deren Klassen und Instanzen nicht eindeutig sind

Was ist eine Instanzklasse?

Nehmen wir als Beispiel an, dass Benutzer in einem Dienst wie Twitter mit den IDs 1 bis 3 posten, wie unten unter der Tweet-Klasse gezeigt. Tweet.png

Zu diesem Zeitpunkt ist jeder in ein schwarzes Quadrat eingeschlossene Beitrag eine ** Instanz **. Instanzen sind Objekte, die aus Klassentypen erstellt wurden. Und Tweet ist ** Klasse **. Ein Bild einer Instanz, die zu einer Klasse gehört. Es ist ein wichtiges Konzept in Ruby! !!

Im Code verstehen

class Tweet
  #Klassenmethode
  def self.tweet
    puts "tweet"
  end

  #Instanzmethode
  def post_tweet(user,about)
    puts "#{user}Ist#{about}Gepostet über"
  end
end

#Lauf
Tweet.tweet

new_tweet = Tweet.new()
new_tweet.post_tweet("choco","Programmierung")

Nach der Ausführung

tweet
choco hat über programmierung geschrieben

Klassenmethode => Methode, die für die Klasse ausgeführt wird.

-Call mit "class name.method" außerhalb der Klasse. (Tweet.tweet im obigen Beispiel) ・ Wenn Sie sich schneiden, werden Sie wütend. (** deklariert sich als Klassenmethode **) => Sie können es mit ** self definieren. Methodenname ~~ end ** in der Klasse. -Alle, neuen usw. sind vordefinierte Klassenmethoden, mit denen Sie Klassen bearbeiten können. (Alle ruft alle Instanzen der Klasse ab, new erstellt eine neue Instanz in der Klasse.)

Instanzmethode => Methode, die für die Instanz ausgeführt wird.

-Call mit "instance name.method" außerhalb der Klasse. (Im obigen Beispiel new_tweet.post_tweet) Da die Instanz zu einer Klasse gehört, erstellen Sie eine Instanz mit ** class name.new ** und führen Sie die Methode für diese Instanz aus. Grundsätzlich habe ich das Gefühl, dass Instanzmethoden häufig während der Implementierung verwendet werden.

Ende

Als ich diesen Artikel schrieb, dachte ich, dass Ruby ein sehr leicht verständliches und intuitives Design ist. Von nun an werde ich versuchen, die Methode mit einem stärkeren Bewusstsein für die Instanzklasse zu definieren.

Vielen Dank an alle, die es gelesen haben. Wenn Sie Vorschläge haben, zögern Sie bitte nicht, uns zu kontaktieren.

Recommended Posts

Der Unterschied zwischen der Ruby-Instanzmethode und der Klassenmethode ist leicht zu verstehen.
Unterschied zwischen Instanzmethode und Klassenmethode
Unterschied zwischen Klasse und Instanz
Unterschied zwischen Instanzvariable und Klassenvariable
Unterschied zwischen Ruby-Instanzvariable und lokaler Variable
[Ruby] Vielleicht verstehst du das nicht wirklich? [Unterschied zwischen Klasse und Modul]
[Ruby] Beziehung zwischen Elternklasse und Kinderklasse. Beziehung zwischen Klasse und Instanz.
[Java] Verstehe den Unterschied zwischen List und Set
[iOS] Verstehe den Unterschied zwischen Frame und Grenzen
Verstehe den Unterschied zwischen abstrakten Klassen und Schnittstellen!
[Ruby] Ich habe über den Unterschied zwischen each_with_index und each.with_index nachgedacht
Unterschiede zwischen Klassen und Instanzen in Ruby
Unterschied zwischen Variablen und Instanzvariablen
Unterschied zwischen Java und JavaScript (wie man den Durchschnitt findet)
Überschreiben wir den Unterschied zwischen == (Identität) und der Methode equals (Äquivalenz).
Der Unterschied zwischen der Programmierung mit Ruby-Klassen und der Programmierung ohne Ruby-Klassen
[Ruby] Unterschied zwischen get und post
Unterschied zwischen Schnittstelle und abstrakter Klasse
Unterschied zwischen == Operator und Methode gleich
[Ruby] Unterschied zwischen is_a? Und instance_of?
Unterschied zwischen dem Operator == und der Methode eqals
Hinweis: Unterschied zwischen Ruby "p" und "Puts"
[Ruby] Von den Grundlagen bis zur Injektionsmethode
[Java] Unterschiede zwischen Instanzvariablen und Klassenvariablen
Über den Unterschied zwischen irb und pry
Unterschied zwischen "|| =" und "instance_variable_defined?" Im Ruby-Memo
[Einfach] So aktualisieren Sie Ruby und Bundler
[Rails] Ich habe den Unterschied zwischen neuer Methode, Speichermethode, Erstellungsmethode und Erstellungsmethode untersucht.
Verstehen Sie den Unterschied zwischen int und Integer und BigInteger in Java und float und double
Was ist der Unterschied zwischen SimpleDateFormat und DateTimeFormatter? ??
[Ruby] Unterschied zwischen Puts und Return, Output und Return
[Schienen] Unterschied zwischen Erstellungsmethode und neuer + Speichermethode
Ruby So konvertieren Sie zwischen Groß- und Kleinschreibung
[Ruby-Grundlagen] Verwendung der Slice-Methode
[Förderung des Ruby-Verständnisses (1)] Wenn Sie von Java zu Ruby wechseln, verstehen Sie zuerst den Unterschied.
[Rails] Ich habe den Unterschied zwischen Ressourcen und Ressourcen untersucht
Was ist der Unterschied zwischen Systemspezifikation und Funktionsspezifikation?
So senden Sie Ethereum-Transaktionen Unterschied zwischen send und sendAsync
Binden Sie die Anfrage an eine Klasse und erhalten Sie sie
Berechnen Sie die Differenz zwischen Zahlen in einem Ruby-Array
[Rails] Was ist der Unterschied zwischen Redirect und Rendering?
Vergleichen Sie den Unterschied zwischen Docker-Datei vor und nach Docker-Slim
[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
Unterschied zwischen Spring AOP und Bibliothekszielklasse
In der Abbildung verstandene Java-Klassen und -Instanzen
Verstehe in 3 Minuten! Eine sehr grobe Erklärung des Unterschieds zwischen Sitzung und Cookie
Was ist der Unterschied zwischen Überspringen und Ausstehend? [RSpec]
Erstellen und Ausführen von Methoden-, Proc- und Methodenklassenobjekten
[Ruby] Klassenverschachtelung, Vererbung und die Grundlagen des Selbst