Ich werde weiterhin die Umrisse der Objektorientierung zusammenfassen. Ich hatte auch Schwierigkeiten, die Objektorientierung zu verstehen, deshalb werde ich sie für Anfänger so leicht wie möglich auf eine leicht verständliche und prägnante Weise schreiben. Masakari geht es gut, also würde ich gerne von Ihnen hören.
Ein Objekt bedeutet "Objekt" und "Objekt" und bezieht sich bei der Programmierung auf eine Sammlung von Datenverarbeitungen. In Ruby sind alle Daten wie Arrays, Hash, Zahlen und Zeichenfolgen (Mono-) Objekte.
Objektorientierte Programmierung ist die Idee, Dinge (Objekte) zu erstellen und zu manipulieren.
In der Objektorientierung ist eine Klasse wie eine Konstruktionszeichnung, die Daten gruppiert und verarbeitet. Grundsätzlich kann es verwendet werden, indem ein Objekt basierend auf der Klasse erstellt wird
Die Daten, über die ein Objekt verfügt, werden als Eigenschaft (Attribut) bezeichnet.
Die Verarbeitung, die das Objekt hat. In menschlicher Hinsicht ist es der Prozess, durch den ein Objekt wie "Laufen, Gehen, Stoppen" eine Aktion ausführt.
def Methodenname
Was willst du tun
end
Wenn Sie beispielsweise eine Hallo-Methode definieren, um ein "Hallo" aufzurufen
def hello
puts 'Hallo'
end
hello #=>Hallo
Es wird wie.
Eine Instanz ist ein Objekt, das aus einer Klasse erstellt wurde. Verwenden Sie beim Erstellen einer Instanz die neue Methode.
class human
def initialize(name)
@name = name
end
def hello
puts "Hallo"
end
end
human = human.new("Tokugawa Ieyasu")
Die hier definierte Initialisierungsmethode ist eine Methode, die beim Erstellen einer Instanz automatisch ausgeführt wird. Der Wert "Ieyasu Tokugawa" wird jetzt im Attributnamen festgelegt.
Die aus der menschlichen Klasse erstellte menschliche Instanz hat einen eindeutigen Namen, Ieyasu Tokugawa, und Sie können die Methode "Hallo" verwenden. Mit nur dieser einen Zeile können Sie ein Objekt mit so vielen Informationen erstellen.
Es bedeutet, die Daten und die Verarbeitung eines Objekts auszublenden, die nicht direkt von einem anderen Objekt verwendet werden müssen, und wenn es verwendet wird, bedeutet es, eine Verarbeitung bereitzustellen, die für den externen Betrieb erstellt wurde. Das objektorientierte Grundkonzept, das bereits im Beispiel eines Rennwagens erwähnt wurde.
Es gibt öffentliche und private Kapselungen. Auf öffentlich beschriebene Methoden kann von außen zugegriffen werden. Wenn jedoch privat angegeben wird, tritt beim Aufruf ein Fehler auf.
class human
#public =>Wenn nichts angegeben ist, ist Ruby standardmäßig öffentlich. Grundsätzlich optional.
def initialize(name)
@name = name
end
def hello
puts "Hallo"
end
end
human = human.new("Tokugawa Ieyasu")
puts human.name #=>Ieyasu Tokugawa wird ausgegeben
class human
private
def initialize(name)
@name = name
end
def hello
puts "Hallo"
end
end
human = human.new("Tokugawa Ieyasu")
puts human.name #=>Ein Fehler wird ausgegeben
Die Funktion eines bestimmten Objekts übernehmen. Wenn Sie mehrere ähnliche Objekte erstellen, ist es sehr zeitaufwändig, alle Eigenschaften und Methoden einzeln zu programmieren. Durch Verwendung der Vererbung kann jedoch dieselbe Funktion implementiert werden.
class Human
def work
puts 'ich bin gegangen'
end
end
#Menschliche Klasse erben
class IeyasuTokugawa < Human
def unification
puts "Vereinte die Welt"
end
end
IeyasuTokugawa = IeyasuTokugawa.new
puts IeyasuTokugawa.unification #=>Vereinte die Welt
puts IeyasuTokugawa.work #=>ich bin gegangen
Wenn Sie eine Klasse erben, können Sie zusätzlich zu den in der Klasse selbst definierten Methoden die in der übergeordneten Klasse definierten Methoden verwenden. Im vorherigen Beispiel kann das Klassenobjekt "Ieyasu Tokugawa" zusätzlich zur Methode "Unification" die Methode "work" der übergeordneten Klasse ausführen.
Sie sehen, dass nicht nur die in der Klasse definierten Methoden, sondern auch die in der Superklasse (übergeordnete Klasse) definierten Methoden ausgeführt werden können.
Was ist Polymorphismus? Polymorphismus ist eines der Konzepte und Methoden in der objektorientierten Programmierung. Wird auf Japanisch auch "Vielfalt" genannt. Dies bedeutet, dass dieselbe Schnittstelle für verschiedene Klassen bereitgestellt wird.
Die Seite, die die Klasse verwendet, kann die Methode aufrufen, ohne den tatsächlichen Zustand der Klasse zu kennen.
class Human
def speak(voice='')
"#{self.name}: #{voice}"
end
end
#Erbe
class NobunagaOda < Human
def speak(voice='Wenn es nicht klingelt, töte es.')
super
end
end
class IeyasuTokugawa < Human
def speak(voice='Schweben Sie das Schiff gut und kippen Sie das Schiff gut um')
super
end
end
NobunagaOda = NobunagaOda.new
NobunagaOda.name = 'Oda Nobunaga'
IeyasuTokugawa = IeyasuTokugawa.new
IeyasuTokugawa.name = 'Tokugawa Ieyasu'
NobunagaOda.speak #=>Oda Nobunaga:Wenn es nicht klingelt, töte es.
IeyasuTokugawa.speak #=>Tokugawa Ieyasu:Schweben Sie das Schiff gut und kippen Sie das Schiff gut um
Es stellt sich heraus, dass sich das Verhalten auch mit derselben Sprechmethode gemäß der Definition in der Klasse ändert.
・ Da jedes Programm in einer kleinen Gruppe betrachtet werden kann, werden komplizierte Programme reduziert. Die Auswirkungen der Reparatur werden verringert und die Wartung wird einfacher.
-Je größer das System, desto größer die Programmimplementierung. Die Objektorientierung ist parallel und kann von einer großen Anzahl von Personen implementiert werden, wodurch die Produktivität erhöht wird. Es ist auch möglich, ähnliche Funktionen zu implementieren, ohne andere zu beeinflussen.
・ Um eine aktive Rolle auf dem Entwicklungsgelände zu spielen, ist die Kenntnis der Backklinge nicht hilfreich. Es gibt viele abstrakte Konzepte, um sie richtig zu verstehen Erfordert Erfahrung vor Ort
-Obwohl bequeme Konzepte wie Vererbung und Polymorphismus verwendet werden können, ist die Entwurfsfähigkeit unabdingbar, um die Lesbarkeit und Qualität des Einflusses, die Erweiterbarkeit und die Gemeinsamkeit mit anderen Codes zu verbessern.
Ich bin noch ein Anfänger, daher habe ich nicht die technischen Fähigkeiten. Ich denke, es ist wichtig, beim Schreiben eines Programms zumindest die Grundkonzepte zu berücksichtigen. Ich hoffe, andere Anfänger werden sich gemeinsam daran erinnern.
Recommended Posts