[RUBY] Objektorientierte Zusammenfassung

Vorwort

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.

1. Objekt

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.

2. Objektorientiert

Objektorientierte Programmierung ist die Idee, Dinge (Objekte) zu erstellen und zu manipulieren.

3. Klasse

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

4. Eigentum

Die Daten, über die ein Objekt verfügt, werden als Eigenschaft (Attribut) bezeichnet.

5. Methode

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.

6. Instanz

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.

7. Kapselung

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.

Für die Öffentlichkeit

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

Für Privatpersonen

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

8. Vererbung

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.

9. Polymorphismus

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.

10. Vor- und Nachteile der Objektorientierung

verdienen

1. Einfache Wartung des Programms

・ 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.

2. Kann geteilt werden

-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.

3. Höhere Programmqualität

Fehler

1. Hohe Schwierigkeit und hohe Bildungskosten

・ 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

2. Die Entwurfsfähigkeit wird getestet

-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.

Schließlich

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

Objektorientierte Zusammenfassung
Zusammenfassung
[Zusammenfassung] Warum objektorientiert machen?
Objektorientierte Zusammenfassung von Anfängern (Java)
Objekt orientierte Programmierung
Objektorientierter
Ransack Zusammenfassung
[Java] Objektorientiert
Zusammenfassung der objektorientierten Programmierung mit Java
Zusammenfassung des Java-Wissens
Java Generics Zusammenfassung
java.lang Zusammenfassung 2 (String)
TDD Trainingszusammenfassung
Java-bezogene Zusammenfassung
Meine RxSwift-Zusammenfassung ②
Objektorientiertes FizzBuzz (Java)
[Java] Objektorientierte Zusammenfassung_Teil 1
Meine RxSwift-Zusammenfassung ①
Objektorientierter Programmierbegriff
[Java] Objektorientierte Syntax - Konstruktor
Objektorientierte (Java) Grundlagen
Zusammenfassung des Java 8-Dokuments
Wie auch immer, Dagger2 Zusammenfassung
Docker-Befehlsübersicht
Rails 6.0-Routing-Zusammenfassung
Zusammenfassung der Eclipse-Umgestaltung
Objektorientierte numerische Berechnung
[Java] Objektorientierte Zusammenfassung_Teil 2
Zusammenfassung der Ruby-Syntax
Zusammenfassung der iPLAss-Installation
Zusammenfassung des Java 11-Dokuments
Schienen db: 〇〇 Zusammenfassung
[Java] Objektorientierte Syntax --Paket
Apache Apex Zusammenfassung