[Java] Objektorientierte Zusammenfassung_Teil 1

Zweck dieses Artikels

--Schreibende Person: Verstehen Sie die grundlegende Grammatik der Programmiersprache, verstehen Sie die Objektorientierung während der Ingenieurausbildung nicht ――Vor dem Erlernen der objektorientierten Denkweise, die zum Erlernen von Java erforderlich ist, ** besteht das Ziel darin, sich über die objektorientierte Weltanschauung zu ärgern und mit dem Verständnis fortzufahren. ** Außerdem wird mein Wissen fest verankert sein. Ebenfalls.

Hintergrund

Was war hilfreich

Gründlicher Kommentar für Anfänger! Was ist Objektorientierung? ・ Es hat mir geholfen, die technischen Begriffe rund um die Objektorientierung zu verstehen.

Objektorientierte Iroha \ -Qiita ・ Die Erklärung der Abstraktion war sehr hilfreich beim Nachdenken über Programmierung und objektorientierten Hintergrund.

[Java] Was ist ein Konstruktor? Bedeutung dieses \ () \ | Die einfachste Einführung in Java ・ Nachdem ich das grobe Wissen (die Grundlagen von Java) und die Abstraktion bisher verstanden hatte, las ich diese Erklärung und sie wurde sehr vertraut. Dank dieser Erklärung wurden verschiedene Dinge miteinander verbunden.

[Objektorientiert \ -Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF % E3% 83% 88% E6% 8C% 87% E5% 90% 91) ・ Die sechs objektorientierten Zusammenfassungen waren hilfreich, um nicht von objektorientierten Abweichungen abzuweichen.

Einführung in objektorientiert ・ Später schien es gut zu sein, den Grad des Verständnisses zu überprüfen, also ein Memorandum.

Java Primer löschen ・ Hat geholfen, den Unterschied zwischen Objekten und Instanzen zu verstehen.

"Abstrakt" vor Objektorientierung

Aber es ist plötzlich,

Woran denkst du, wenn du an "Äpfel" denkst?

...

Apropos "Apfel", "roter, runder und essbarer Gegenstand"

Ich denke an dich.

** Ich glaube, ich konnte es ohne spezifische Informationen verstehen **.

Dies nennt man ** Abstraktion **.

Wie Sie dem Beispiel entnehmen können, ** eine Gruppierung von Merkmalen, die der Abstraktion ähnlich sind und ihnen entsprechende Namen geben. **

Und ich denke, dasselbe gilt für die Programmierung.

In der Programmierung gibt es viele Gruppen mit ähnlichen Eigenschaften.

Die Features heißen Variablen, Funktionen und objektorientiert.

Wenn dies ein Apfel ist, kann er leicht als "rotes, rundes und essbares Objekt" erklärt werden. Beim Programmieren dauert es jedoch einige Zeit, ihn zu verstehen, da das abstrahierte Objekt sehr kompliziert ist und es verschiedene Muster gibt.

Und Objektorientierung ist eines dieser komplexen Dinge.

Da ich jetzt jedoch nicht verschiedene Muster kennen muss, möchte ich ein konkretes Beispiel mit einem königlichen Straßenmuster geben und versuchen, es tatsächlich zu abstrahieren, um mein Verständnis der Terminologie zu vertiefen.

Was ist ein "Objekt", bevor es objektorientiert ist?

~~ Ein Objekt ist ein "Objekt". ~~

~~ Objektorientiert ??? ~~

Ein Objekt ist im Allgemeinen ein "Objekt" In der Welt des Programmierens ist es besser, es als "informierte Versammlung" oder "abstrahiertes Objekt" zu betrachten.

Warum objektorientiert?

In der realen Welt bestehen die meisten aus "Objekten".

Es wird angenommen, dass ein "Objekt" im Raum mit einer konkreten Form existiert.

Es ist jedoch schwer zu verstehen, ob alles ein "Objekt" ist. Deshalb habe ich beschlossen, jedes Feature zu klassifizieren und dem "Objekt" einen Namen zu geben.

** Ja, es ist eine Abstraktion. **

Auf diese Weise ist es irritierender, ** objektorientiert ** zu übernehmen, indem die Idee ** "Es ist einfach zu handhaben, wenn man es als ein Objekt wie die reale Welt betrachtet" übernommen wird, also gefällt mir das. verstanden.

Und es ist die objektorientierte Programmierung, die diese Idee auf die Programmierung anwendet.

Ich denke, das kommt auch von der Idee ** "weil es einfacher ist, die Programmierwelt genauso zu verstehen wie die reale Welt".

Objektorientiert, um sich in der realen Welt zu erinnern

Da das Objekt ein Objekt in der realen Welt bedeutet, dachte ich, es wäre einfacher zu verstehen, wenn ich die reale Welt als Beispiel nehme, also werde ich es mit ** einer minimalen Konfiguration unter Verwendung eines Autos ** erklären.

Hauptsächlich objektorientiert

** Ich habe ein Autodesign-Dokument erstellt. Machen Sie ein Auto basierend auf dem Autodesign-Dokument. **

Einfach gesagt, das war's.

Außerdem, ** Erstellen Sie ein "Designdokument", das beschreibt, welche Art von Spezifikationen (Farbe, Funktion, Gewicht, Preis) das Auto haben wird Hergestellt basierend auf "Konstruktionsdokument". **

Das ist alles.

Und ** wenn Sie ein Auto haben, fahren Sie es. **

Die Hauptsache, die ich mache, ist ** "Erstellen Sie ein Designdokument, um ein Objekt zu erstellen, ein Objekt zu erstellen und das Objekt zu verschieben." **

(Ich war am hungrigsten nach dieser Art des Verstehens.)

Denken Sie ein bisschen mehr wie Programmieren

Dieses Mal möchte ich den Prozess der Herstellung eines roten Autos als Beispiel nehmen.

In der Welt der Programmierung wird der Code in der Reihenfolge von oben geladen.

Wenn beispielsweise der folgende Satz vorhanden ist (es handelt sich nicht um einen Code, sondern um das Verständnis zu erleichtern), wird er in der Reihenfolge von oben gelesen.

** 1. Nennen Sie das Konstruktionsdokument "Auto". 2. Schreiben Sie Informationen zum Fahrzeug "Farbe ist rot" und "Name ist A" in den Inhalt des Konstruktionsdokuments. 3. Schreiben Sie in den Inhalt des Konstruktionsdokuments die Aktionen, die sich auf das Fahrzeug beziehen, z. B. "kann einen Anruf tätigen" und "kann anhalten". 4. Machen Sie ein "Auto" basierend auf dem "Auto-Design-Dokument". **

Dann wird in Bezug auf die Programmierung ein "rotes Auto namens A" fertiggestellt.

Auf diese Weise ist ** objektorientierte Programmierung die Idee, ein "Designdokument" zu erstellen, "was für Dinge" und "was kann getan werden" darin zu schreiben und es wie eine echte Sache zu behandeln. **

Es kann jedoch vorkommen, dass das Auto "blau" sein soll.

Schreiben Sie in diesem Fall Teil 2 von "rot" nach "blau".

Dann ist "blaues Auto namens A" abgeschlossen.

So einfach ist es, Änderungen in der Programmierung vorzunehmen.

In der realen Welt müssen Sie, wenn Sie dies tun möchten, das Auto einsammeln, von oben blau lackieren und zurückgeben (und es ist sehr schwierig, wenn es viele Autos gibt, es ist ein sogenannter Rückruf …).

In der Welt der Programmierung müssen Sie jedoch nur den Inhalt des "Car Design Document" neu schreiben.

Ich glaube, ich habe verstanden, wie man objektorientiert schreibt.

Objektorientierte Fachbegriffe verstehen (Java)

Es ist eine grobe Idee, aber wenn Sie die Bedeutung bisher verstehen können

Es ist fast so, als ob ich davon wüsste.

** Diese Begriffe sind nur Namen für jedes Ereignis im vorherigen Beispiel. ** (Eigentlich ist es komplizierter, aber ... es ist leicht für mich zu verstehen.)

Es ist schwierig, es in Form zu bringen, aber ich mache ** "Erstellen Sie ein Designdokument, um ein Objekt zu erstellen, ein Objekt zu erstellen und das Objekt zu verschieben." **.

Versuchen Sie, die Beziehung zwischen Begriffen herauszufinden

Ein einfaches Diagramm dieser Beziehung ist wie folgt. オブジェクト指向_用語関連図.png

Unterschied zwischen Objekt und Instanz

Ein Objekt ist ein allgemeiner Begriff für dynamisch generierte Entitäten. Instanz ist ein allgemeiner Begriff für dynamisch generierte Entitäten vom Klassentyp

In der Abbildung sieht es so aus. オブジェクト指向_オブジェクトとインスタンス.png

Wenn Objekte und Instanzen nur als Entität verwendet werden, haben sie wahrscheinlich dieselbe Bedeutung.

Schreiben Sie tatsächlich in Java-Code

1. Nennen Sie das Konstruktionsdokument "Auto".

Car.java


class Car {

}

[Programm Beschreibung] -Der Typ ist ein Klassentyp und der Klassenname "Auto" wird deklariert. -Klassentypen werden als Referenztypen klassifiziert.

2. Schreiben Sie Informationen zum Fahrzeug "Farbe ist rot" und "Name ist A" in den Inhalt des Konstruktionsdokuments.

Car.java


class Car {
	String carname = "A"; //Autoname
	String color = "red"; //Autofarbe
}

[Programm Beschreibung] ・ Fahrzeugname vom Typ String, der den Namen des Fahrzeugs darstellt ・ Farbe vom Typ String, die die Farbe des Fahrzeugs darstellt

3. Schreiben Sie in den Inhalt des Konstruktionsdokuments die Aktionen, die sich auf das Fahrzeug beziehen, z. B. "kann einen Anruf tätigen" und "kann anhalten".

Car.java


class Car {
	String carname = "A"; //Autoname
	String color = "red"; //Autofarbe

	void start() { //Ausgehender Betrieb des Autos
		System.out.println("Ausziehen, starten, abheben, losfahren");
	}
 
	void stop() { //Autostoppbetrieb
		System.out.println("Halt");
	}
}

[Programm Beschreibung] ・ Zeigt den ausgehenden Betrieb des Fahrzeugs an. Rückgabetyp-Startmethode, die keinen Wert zurückgibt ・ Zeigt den Stoppvorgang des Fahrzeugs an. Rückgabetyp Stoppmethode, die keinen Wert zurückgibt

4. Machen Sie ein "Auto" basierend auf dem "Auto-Design-Dokument".

CarTest.java


class CarTest{
	public static void main(String[] args){
		Car car = new Car();
	}
}

[Programm Beschreibung] -Der Typ ist ein Klassentyp und der Klassenname "CarTest" wird deklariert. -Instantieren Sie die Fahrzeugklasse mit dem neuen Operator und weisen Sie der Fahrzeugtypvariablen car (Klassentypvariable) ein Objekt zu. → ** Es sieht so aus, als würden Sie das erstellte Objekt ersetzen, aber tatsächlich bezieht sich die Variable Car nur auf das Objekt Car (sieht darauf) (wie man darauf zugreift, ist Teil 2) **.

In der Abbildung sieht es so aus. クラス型変数.png

Obwohl es sich um eine grobe Skizze handelt, habe ich ein Entwurfsdokument für die Erstellung eines Objekts erstellt und es zusammengefasst, während ich mich auf verschiedene Dinge bis zur Erstellung eines Objekts bezog.

Fahren Sie mit [[Java] Object Oriented Summary \ _Part 2 \ -Qiita] fort (https://qiita.com/snyt45/items/c0164e409d7f54501060).

Recommended Posts

[Java] Objektorientierte Zusammenfassung_Teil 1
[Java] Objektorientierte Zusammenfassung_Teil 2
[Java] Objektorientiert
Objektorientiertes FizzBuzz (Java)
[Java] Objektorientierte Syntax - Konstruktor
Objektorientierte (Java) Grundlagen
[Java] Objektorientierte Syntax --Paket
Objektorientiert mit Strike Gundam (Java)
Objektorientierte Zusammenfassung von Anfängern (Java)
Java
Memorandum über Java 3-Hauptelemente (objektorientiert)
Java
[Java] Objektorientierte Syntaxklassenmethode / Argument
[Java] Objektorientierte Syntaxklasse / Feld / Methode / Bereich
Zusammenfassung der objektorientierten Programmierung mit Java
Java lernen (0)
[Java] -Array
Java geschützt
[Java] Modul
Java-Array
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Java-Methoden
Java-Methode
Java-Array
[Java] ArrayDeque
Java (Methode)
Objektorientierte Zusammenfassung
Java Day 2018
Java-Zeichenfolge
Java (Array)
Objekt orientierte Programmierung
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Java (gesetzt)
Java-Shell-Sortierung
[Java] compareTo
Java studieren -5
Java reflektierend 获 获 举
Java (Schnittstelle)
Java-Array
Java studieren ―― 1
[Java] Array
[Java] Polymorphismus
Java # 0 studieren
Java-Überprüfung
Java-Framework
Java-Funktionen
[Java] Vererbung
FastScanner Java
Java-Funktionen
Java Anfänger 3
Java-Memo
Java (Kapselung)
Java-Vererbung
[Java] Überladung