[RUBY] Überlegungen zu Klassen und Instanzen

Informationen zu Klassen und Instanzen

Ich habe den Umfang von Klassenfeldern, Klassenmethoden, Instanzmethoden und den Wirkungsbereich von Instanzvariablen nicht verstanden und sie daher zusammengefasst.

Ich vertiefte mein Verständnis, aber ein neues Geheimnis wurde geboren.

Ich würde mich freuen, wenn Sie mir Vorschläge oder Ergänzungen mitteilen könnten.

◆ Beschreibung (Erklärung)
class Zoo
def self.kind(animal_name)
@animal_name = animal_name
puts @animal_name #Ausgabe:Giraffe
puts animal_name #Ausgabe:Giraffe
puts @name #Ausgabe:Leer
puts name #Ausgabe:Zoo
end

def self.kind_name
puts @animal_name #Ausgabe:Giraffe
# puts animal_name #Ausgabe:NameError
end

puts @animal_name #Ausgabe:Leer
# puts animal_name #Ausgabe:NameError

def initialize(new_animal)
@new = new_animal
puts "#{@new}Ist angestiegen." #Ausgabe:新たな仲間Ist angestiegen.
end

def kind(name)
@name = name
puts @animal_name #Ausgabe:Leer
# puts animal_Namensausgabe:NameError
puts @name #Ausgabe:Löwe
puts name #Ausgabe:Löwe
end

puts @name #Ausgabe:Leer
puts name #Ausgabe:Zoo

def color(animal_color)
@color = animal_color
#setzt die Namensausgabe:NameError
puts "#{@new}von#{@name}Ist#{@color}ist" #Ausgabe:新たな仲間vonライオンIst黄色ist
#setzt die Namensausgabe:NameError
end
end

Zoo.kind("Giraffe") 
#Klassenmethode selbst.Freundliche Ausführung
Zoo.kind_name
#Klassenmethode selbst.kind_Führen Sie den Namen aus

animal = Zoo.new("Neuer Begleiter") 
#Erstellen Sie eine Tierinstanz und führen Sie die Initialisierungsmethode aus
puts animal.kind("Löwe") 
#Ausführung der Art Instanz Methode der Tierinstanz

puts animal.color("Gelb") 
#Ausführung der Farbinstanzmethode der Tierinstanz
 
#↓ Außerhalb des Anwendungsbereichs
# puts @animal_Namensausgabe:Leer
# puts animal_Namensausgabe:NameError
# puts @Namensausgabe:Leer
#setzt die Namensausgabe:NameError

◆ Inhalt der Terminalausgabe


Zoo
Giraffe
Giraffe

Zoo
Giraffe
Neue Freunde wurden hinzugefügt.

Löwe
Löwe

Der neue Löwenkollege ist gelb

◆ Schlussfolgerung

-Der Ausgabeinhalt ist der Inhalt, der in der Reihenfolge von oben einschließlich des Klassenteils gelesen wird.

-Instanzvariablen befinden sich zwischen Klassenmethoden oder zwischen Instanzmethoden. Es ist möglich, sich gegenseitig auszugeben. Da Sie jedoch keine Instanz in einer Klassenmethode erstellen können, @ Ist nur eine Pipe, die Klassenmethoden verbindet.

  • Obwohl die Instanzvariable keinen NameError verursacht, selbst wenn sie außerhalb des Bereichs platziert ist, Es wird ein Leerzeichen im Ausgabeziel erstellt.

◆ Neue Frage

-Warum in anderen Klassenfeldern als Instanzmethoden (einschließlich Klassenmethoden) Wird der Klassenname ausgegeben, wenn ein undefinierter Name ausgegeben wird?

Recommended Posts

Überlegungen zu Klassen und Instanzen
Über Klassen und Instanzen
Über Klassen und Instanzen (Evolution)
Informationen zu Ruby-Klassen und -Instanzen
[Ruby] Klassen und Instanzen
Java (Klasse und Instanz)
Erste Schritte mit Java_Kapitel 8_Über "Instanzen" und "Klassen"
Erstellen von Ruby-Klassen und -Instanzen
Unterschiede zwischen Klassen und Instanzen in Ruby
Organisieren Sie Klassen, Instanzen und Instanzvariablen
Überlegungen zu Schienen und sauberer Architektur
Klassen und Instanzen Java für Anfänger
Java-Programmierung (Klassen und Instanzen, Hauptmethoden)
Über die Standardklasse
Schreiben Sie Code mit Ruby-Klassen und -Instanzen
Java-Klasse, Instanz, Objekt
HashMap- und HashSet-Klassen
Über Bean und DI
[Java] Über anonyme Klassen
Über bekommt und bekommt.chomp
Über Weiterleiten und Weiterleiten
Über Kapselung und Vererbung
Liste und fröhliche Klassen
Informationen zu Serializable und serialVersionUID
In der Abbildung verstandene Java-Klassen und -Instanzen
[Für Anfänger] Erläuterung von Klassen, Instanzen und Statik in Java
Über für Anweisung und wenn Anweisung
Über synchronisierte und Wiedereintrittssperre
[Java] Generics-Klasse und Generics-Methode
Über Ruby-Hashes und -Symbole
[Java] Über String und StringBuilder
Ungefähr der gleiche und der gleiche Wert
Über die Zupfmethode und die ID-Methode
Über Java-Paket und Import
Über Ruby und Objektmodell
Überlegungen zur Zeitmethode
[Ruby] Singuläre Methoden und singuläre Klassen
Über Java Abstract Class
Ruby-Methoden und -Klassen (grundlegend)
Über Instanzvariablen und attr_ *
Java abstrakte Methoden und Klassen
Informationen zu statischen und nicht statischen Java-Methoden
Über Biocontainer fastqc und Java
Erfahren Sie mehr über Edelsteine und Bündler
Informationen zu den Methoden equals () und hashcode ()
[Java-Anfänger] Über Abstraktion und Schnittstelle
Über Ruby einfache Anführungszeichen und doppelte Anführungszeichen
[Ruby] Klassen, Instanzvariablen, Instanzen usw.
Aufrufen von Klassen und Methoden
Informationen zum Ruby-Produktoperator (&) und zum Summenoperator (|)
Informationen zu removeAll und RetainAll von ArrayList
Java Generics (definiert Klassen und Methoden)
If-Anweisung und Verzweigungsverarbeitung