Ruby-Methoden und -Klassen (grundlegend)

Etwas zu sagen

1: Methode 2: Klasse 3: Instanzmethode 4: Klassenmethode ist.

1: Was ist eine Methode?

Eine Methode ist eine Methode, die mehrere Prozesse kombiniert.

greet.rb


def greet(name)
  puts "#{name}, HELLO!"
end
greet('Alice')
> "Alice, HELLO"

** greet (name) ** entspricht der Methode. Die Methode wird nicht am definierten Teil geladen (def ~ end), sondern nur, wenn sie ausgeführt wird (greet ('Alice')).

Die Methode ist 1: Sie können den Wert übergeben 2: Der Auswertungswert wird am Ende zurückgegeben 3: Auf in der Methode definierte Variablen kann nicht extern zugegriffen werden Es hat die Funktion.

Wenn der Methodenname lang ist, ist es üblich, ihn in einem Schlangenfall zu schreiben.

** greet_her ** statt greetHer ** send_mail ** statt sendMail **

Es ist notwendig, in Form von zu schreiben.

Vorteile der Verwendung von Methoden

1: Die durch die Methode definierte Verarbeitung kann wiederverwendet werden 2: Codeänderung wird einfacher

Angenommen, Sie haben einen solchen Code.

number.rb


puts 1
puts 2
puts 3
puts 4

puts 1
puts 2
puts 3
puts 4

Es ist sehr mühsam, Puts 1 nacheinander zu schreiben, daher werde ich sie mit einer Methode neu schreiben

number.rb


def number
  puts 1
  puts 2
  puts 3
  puts 4
end

number #1 in einem Lauf,2,3,4 Ausgänge gleichzeitig
> 1
> 2
> 3
> 4

Wenn Sie Puts 3 nicht mehr benötigen, können Sie Puts 3 in der Methode einfach löschen.

number.rb


def number
  puts 1
  puts 2
  #Löschen
  puts 4
end

number #1 in einem Lauf,2,4 Ausgänge gleichzeitig
> 1
> 2
> 4

Wenn Sie eine Methode erstellen, die auf diese Weise problemlos wiederverwendet werden kann, können Sie das Ganze leichter ändern.

2: Was ist eine Klasse?

Die Quelle, die beim Erstellen einer Instanz verwendet werden soll. Es ist vielleicht leichter vorstellbar, wenn Sie es als eine Form für die Herstellung von Keksen betrachten.

cookie.rb


Class Cookie #Name der Klasse=Cookie
  def cookie #Methodenname=cookie
  end
end
#Erstellen Sie tatsächlich eine Instanz aus einem Typ namens Cookie-Klasse ↓
cookie = Cookie.new
cookie
#Es wurde getan ↓
=> #<Cookie:0x00007ff34c847fa0>

<Cookie:0x00007ff34c847fa0> Ist eine Instanz, die von der Cookie-Klasse erstellt wurde. Eine Instanz kann erstellt werden, indem der Klassenname auf .new gesetzt wird. Eine Instanz bezieht sich auf die Entität selbst, die aus der Quelle erstellt wurde. Einfach gesagt, ein echter Keks aus einer Form.

Erstellen Sie eine Instanz mit Informationen

Mit der Initialisierungsmethode können beim Erstellen einer Instanz Informationen bereitgestellt werden. Dieses Mal geben wir der Cookie-Instanz zwei Informationen, Größe und Geschmack.

cookie.rb


class Cookie
  def initialize(size, taste)
    @size = size
    @taste = taste
  end
end

cookie = Cookie.new('Large', 'Sweet')
cookie
=> #<Cookie:0x00007ff34d2a7108 @size="Large", @taste="Sweet">

Dies ermöglichte es uns, große, süß schmeckende Cookie-Instanzen zu generieren. Plötzlich kam heraus,

@size @taste

Diese Typen, die mit @ beginnen, heißen ** Instanzvariablen **, und Sie können die für jede Instanz gespeicherten Daten (für jedes Cookie) ändern. Diesmal ist Größe das erste Argument und Geschmack das zweite Argument, das 'Groß' bzw. 'Süß' entspricht. Indem Sie dies anwenden,

cookie.rb


cookie1 = Cookie.new('Medium', 'Bitter')
cookie1
=> #<Cookie:0x00007ff34d2cdd30 @size="Medium", @taste="Bitter">

cookie2 = Cookie.new('Small', 'Salty')
cookie2
=> #<Cookie:0x00007ff34d2cdd30 @size="Small", @taste="Salty">

Und Sie können Cookie-Instanzen mit mehreren Größen und Geschmacksrichtungen erstellen.

3: Was ist eine Instanzmethode?

Eine Methode, die mit der erstellten Instanz (Cookie) ausgeführt werden kann. Im Moment gibt es drei Arten von Keksen: Small Salty, Medium Bitter und Large Sweet. Diese werden nur aus der Cookie-Klasse ** hergestellt und nicht verwendet. ** ** ** Instanzmethoden sollen mit diesen Leuten etwas anfangen.

cookie.rb


cookie2
=> #<Cookie:0x00007ff34d2cdd30 @size="Small", @taste="Salty">

def cookie_taste
  puts "#{@taste}"
end
=> :cookie_taste

cookie.cookie_taste
> Salty

Den Daten der Instanzmethode @taste des Cookies ist es gelungen, die Daten an @taste von cookie_taste zu übergeben. Auf diese Weise kann die Instanzmethode auf die Daten verweisen, die auf den Daten der Instanz basieren.

4: Was ist eine Klassenmethode?

Früher war es über eine Instanz, aber Sie können dasselbe über eine Klasse tun. Verwenden Sie diese Option, wenn Sie nicht auf die Instanzdaten verweisen müssen.

cookie.rb


class Cookie
  # @@Diejenigen mit zwei werden als Klassenvariablen bezeichnet und können von allen Instanzen gemeinsam genutzt werden.
  @@my_cookie_is = 0

  def initialize(size, taste)
    @size = size
    @taste = taste

    @@my_cookie_is += 1
  end

  #Instanzmethode
  def show_info
    puts "#{@taste}Kekse#{@size}Es gibt nur Größe."
  end

  #Klassenmethode
   def self.show_all_cookie
     puts "ich bin#{@@my_cookie_is}Ich werde ein Stück Keks essen."
   end
end

Danach

cookie.rb


#Ausführung der Klassenmethode
cookie4 = Cookie.new('Medium','Bitter')
cookie4
=> #<Cookie:0x00007ff34d1ae440 @size="Medium", @taste="Bitter">
Cookie.show_all_cookie
Ich esse einen Keks.
#Ausführung der Klassenmethode
cookie5 = Cookie.new('Large','Salty')
cookie5
=> #<Cookie:0x00007ff34c851c30 @size="Large", @taste="Salty">
Cookie.show_all_cookie
Ich esse zwei Kekse.

#Ausführung der Instanzmethode
cookie4.show_info
Bittere Kekse sind nur mittelgroß.
#Ausführung der Instanzmethode
cookie5.show_info
Salzige Kekse sind nur in großen Größen erhältlich.

Wird sein.

Referenz

[Ruby] Objektorientiertes Klassenkonzept, verstanden von Taiyaki https://pikawaka.com/ruby/class#%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9 Ich war sehr hilfreich. Ich habe es fast als kurze Version dieses Artikels geschrieben. Durch das Verfassen eines Artikels konnte ich das flache Wissen abdecken.

Recommended Posts

Ruby-Methoden und -Klassen (grundlegend)
[Ruby] Singuläre Methoden und singuläre Klassen
[Ruby] Klassen und Instanzen
Ruby-Klassen und -Instanzen
[Java] Generics-Klasse und Generics-Methode
Informationen zu Ruby-Klassen und -Instanzen
Erstellen von Ruby-Klassen und -Instanzen
Java abstrakte Methoden und Klassen
Ruby-Standardeingabe und verschiedene Methoden
Aufrufen von Klassen und Methoden
Java Generics (definiert Klassen und Methoden)
Mit Rubin ● × Game und Othello (Grundlegende Bewertung)
Ruby Grundbegriffe
Java-Programmierung (Klassen und Instanzen, Hauptmethoden)
Funktionen und Methoden
JAVA lernen Geschichte abstrakte Klassen und Methoden
Schreiben Sie Code mit Ruby-Klassen und -Instanzen
Über Ruby-Methoden
Symbole und zerstörerischer Rubin
HashMap- und HashSet-Klassen
Ruby-Lernpunkte (grundlegend)
[Ruby] Big Decimal und DECIMAL
Über Klassen und Instanzen
Ruby grundlegende Syntaxnotizen
Informationen zu Ruby-Instanzmethoden
Ruby-Vererbung und -Delegierung
[Ruby] -Methode, Instanzmethode ...
Liste und fröhliche Klassen
Java (Klasse und Instanz)
Grundlegende Bediener und Operationen
Fühlen Sie den Grundtyp und Referenztyp leicht mit Rubin
Unterschiede zwischen Klassen und Instanzen in Ruby
Fühlen Sie den Grundtyp und Referenztyp leicht mit Rubin 2
Basisdatentyp und Referenztyp
So trennen Sie Wörter in Namen in Klassen, Methoden und Variablen
(Hinweis) Java-Klassen / Variablen / Methoden
Schienenpfad und URL-Methoden
Ruby-Syntaxfehler und Gegenmaßnahmen
Ruby C Erweiterung und flüchtig
Fassen Sie Ruby und Dependency Injection zusammen
Über Klassen und Instanzen (Evolution)
Über die Zupfmethode und die ID-Methode
Überlegungen zu Klassen und Instanzen
Was sind Ruby-Klassenmethoden?