[JAVA] Objektorientiert, das von Feen verstanden werden kann

Überblick

In diesem Artikel werde ich die Grundlagen der Objektorientierung anhand der -Metapher (</ rp> und </ rt> ) </ rp> </ ruby> als "Fee" erläutern. .. Die Programmierer, die dies lesen, sind Fairys Summoner (</ rp> Summoner </ rt> ) </ rp> </ ruby>. Es ist auch der Ruby> main (</ rp> master </ rt> ) </ rp> </ ruby>. Wenn ich den Rubin schüttle, fühle ich mich cool. Lassen Sie uns lernen, welche Art von Fee gut ist, damit Sie eine schöne Fee nennen können.

Lass uns die Fee kennenlernen

Nehmen wir als Beispiel eine Trump-Karte.

Card.java


public class Card {
    //Feld (= Mitgliedsvariable)
    private Suit suit; //Kennzeichen(Herzen, Spaten, Diamanten, Keulen)
    private int number;//Zahlen(1~13)

    //Methode (= Funktion)
    public Card(Suit suit, number) {//Konstrukteur
        this.suit = suit;
        this.number = number;
    }

    public Suit getSuit() {
        return this.suit;
    }

    public int getNumber() {
        return this.number;
    }
}

Objekt = Fee

Eine Fee ist ein Objekt in Objektorientierung. Feen sind diejenigen, die in Dingen wohnen und Dinge kontrollieren (= kontrollieren). Mit anderen Worten, alle Feen haben die Rollen XX, XX und XX. Alle Menschen, wie eine Fee, die mitten in der Nacht putzt, eine Fee, die in Schuhen bleibt und Menschen hilft, die sie tragen, und [Densetsus Fee](https://wiki.ducca.org/wiki/legendary Suzuki) Es wird uns helfen.

Klasse = magisches Team

Es ist das magische Team, das entscheidet, welche Art von Fee man nennt. Im magischen Kreis steht nicht nur die Fee selbst, sondern auch der Vertrag mit der Fee. Ein magischer Kreis ist eine Klasse in der Objektorientierung. Die Fee ist ** ernst und gehorsam **, also wird er genau das tun, was der magische Kreis sagt. Wenn Sie den magischen Kreis schreiben können, rufen wir die Fee herbei. Der Zauber lautet "Beschwören! Fee!". Neu im Java-Quellcode ist der Beschwörungszauber.

//Feenbeschwörungszauber
Fairy alice = new Fairy();

Feld = was Sie haben und was Sie wissen

Das Feld (= Mitgliedsvariable) repräsentiert das "was er hat" und "was er weiß" der Fee. Feen können sich daran erinnern, was sie sind und wer andere Feen bereit sind, ihnen zu helfen. ** Feen mögen es nicht, auf ihren Inhalt starren zu können. ** ** ** Es ist dasselbe wie bei einem Highschool-Mädchen, das sagt: "Hey! Ich bin gerade nicht glücklich! Es ist peinlich> <". Daher ist es wünschenswert, dass das Feld (= Mitgliedsvariable) eher privat als öffentlich ist. Der Grund ist, dass wenn es öffentlich ist, es eine Quelle unerwarteter Fehler sein wird, weil Sie nicht wissen, wann die Fee beeindruckt war oder was Sie jetzt tun. Wenn Sie sich zu Beginn verlaufen, können Sie es vorerst privat lassen. Wenn Sie sehen oder ändern möchten, was die Fee hat, tauschen wir sie über die Funktionen getter / setter (get ○○○ und set ○○○) aus.

Methode = was Sie tun können und was Sie tun können

Die Methode (= Funktion) repräsentiert das "was du kannst" und "was du kannst" der Fee. Sie können verschiedene Dinge tun, z. B. "Diesen Job erledigen" oder "Fragen beantworten". Ja, Sie können es in den magischen Kreis (= Klasse) schreiben.

Eigentlich ist die obige Trump-Fee noch keine Fee geworden. Einen Wert zu haben und ihn ein- und auszuschalten, ist nur ein Container, und Sie interagieren immer noch mit Dingen und Menschen. Hier ist ein Beispiel.

public staric main(String[] args) {
    Card heart = new Card(Suit.HEART, 7);//Anzug ist vom Typ Enum.

    if(heart.getNumber() >= 5) {
        System.out.println("Diese Karte ist 5 oder höher.");
    } else {
        System.out.println("Diese Karte ist weniger als 5.");
    }
}

Schauen wir uns als nächstes die Interaktion zwischen Fee und Menschen an.

Card.java


public class Card {
    // ...Felder und andere Funktionen sind die gleichen wie oben, daher weggelassen...

    public boolean isOver(int number) {
        return this.getNumber() >= number;
    }
}
public staric main(String[] args) {
    Card heart = new Card(Suit.HEART, 7);

    if(heart.isOver(5)) {
        System.out.println("Diese Karte ist 5 oder höher.");
    } else {
        System.out.println("Diese Karte ist weniger als 5.");
    }
}

Bestenfalls könnte man denken, dass es nur noch eine Funktion ist, aber ** Fairy möchte in der Lage sein, ihren Job alleine zu machen. ** Es ist nicht nur eine Sache, also können Sie selbst denken und handeln. Daher ist es besser, das Urteil in Bezug auf das, was die Fee weiß, der Fee zu überlassen, als es als Meister zu betrachten. Erstellen Sie eine neue Funktion und geben Sie ihr einen schönen kurzen, beschreibenden Namen.

Argument = Lehre

Das Argument repräsentiert "Lehren" für die Fee. Lassen Sie uns der Fee durch die Argumente beibringen, was Sie brauchen. Wie ich bereits erwähnt habe, möchte die Fee ihre Arbeit selbst erledigen können, daher ist es besser, weniger zu unterrichten (= Argument). Wenn Sie dasselbe immer und immer wieder unterrichten möchten, ist es besser, es über den Konstruktor zu unterrichten, die Funktion ○○○ hinzuzufügen und die Funktion ○○○ im Voraus festzulegen, damit Sie das Gelernte verwenden können. Überlassen wir die Arbeit der Fee ~~ und werfen das Ganze ~~. Auf diese Weise werden sowohl die Fee als auch der Meister glücklich sein.

Fehler = gefährliche Dinge und Dinge, die nicht getan werden sollten

Fehler (= Ausnahmen) sind "gefährliche Dinge" für die Fee und den Meister und "nicht tun" für die Fee. Die Fee ist ein harter Arbeiter, aber aufgrund zu starker Anstrengungen kann der Meister in Schwierigkeiten geraten. Ich mache mir große Sorgen, wenn ich mich verliere oder dorthin gehe, wo ich nicht sollte. Es ist ein Fehler, dies zu verhindern. Wenn die Fee etwas Gefährliches tun will, hör auf. Es ist jedoch am besten, einen magischen Kreis (= Klasse) zu schreiben, damit gefährliche Dinge überhaupt nicht passieren, anstatt anzuhalten, wenn es eine gefährliche Sache gibt.

Eine gute Fee ist klein und schön

Eine gute Fee ist klein und schlank. Klein zu sein bedeutet, dass der Code kurz ist. Je mehr Arbeit eine Fee erledigt, desto länger wird der Quellcode und desto größer wird die Fee. Ein weiterer Grund für die Fee, fett zu werden, ist die Vervielfältigung von Code. Lassen Sie uns eine Diät machen, indem wir eine Funktion erstellen, um den überlappenden Teil zusammenzusetzen oder die Arbeit mit einer neuen Fee zu teilen. Ziel ist es, die Frage „Was macht diese Fee?“ In einem Satz beantworten zu können. Es ist besser, vielen kleinen Feen viel Arbeit zu überlassen, als einer fetten Fee viel Arbeit zu überlassen. Machen wir einen Feenharem. Andererseits wird eine sehr fette Fee zu ** Gott </ font> **.

  • Bild Bild *

Gottfee ist eine lästige Fee, die mit der Arbeit betraut ist, aber nicht versteht, warum sie sich bewegt. Es ist eine Präsenz, die alte Meister aktive Meister nennen und erschrecken. Wenn ich versuche, God Fairy dazu zu bringen, etwas Neues zu tun, entstehen eine Vielzahl von Fehlern und deren Möglichkeiten, und es fällt mir schwer, sie zu beheben, oder sogar hundert schwere Zeiten. Wenn Sie also einen neuen magischen Kreis schreiben, machen Sie keinen ** Gott. ** ~~ Diese Zeile ist cool ... ~~ Diese Art von "Weiß nicht" in der Programmierung wird als [** Anti-Pattern **] bezeichnet (http://koduki.hatenablog.com/entry/2012/04/16/082356). Umgekehrt heißen die empfohlenen Methoden ** Design Patterns **. Die bekannteste heißt GoF (Gang of Four) und es gibt insgesamt 23. Wenn Sie die Syntax Ihres Programms verstanden haben, sollten Sie es nachschlagen.


Sauberer Code ist Code, der für den Master leicht zu lesen ist (gut lesbar). Programmierer haben Ästhetik im Quellcode, genau wie Mathematiker Schönheit in mathematischen Formeln finden. Es gibt verschiedene Techniken wie flache Einrückungen und Eigennamen. Der Trick, um eine kleine und schöne Fee zu machen, besteht darin, durch ** Refactoring ** zu suchen und zu lernen.

Zusammenfassung

Die Fee will selbstständig denken und handeln. Überlassen wir die Arbeit so weit wie möglich der Fee. Und lassen Sie uns versuchen, einen Mechanismus zu schaffen, mit dem viele kleine und schöne Feen zusammenarbeiten können.

abschließend

Für mich ist es besser, Refactoring zu studieren, bevor man die Objektorientierung studiert. Wenn Sie wissen, was zu tun ist, können Sie leichter verstehen, wozu die Objektorientierung dient. Nachdem ich die Grundlagen der Objektorientierung und der Entwurfsmuster studiert hatte, lernte ich das Refactoring, aber nachdem ich das Refactoring studiert hatte, konnte ich diese Muster und Ideen klarer verstehen.

Dann freuen wir uns auf Ihre Vorlieben, Eindrücke und Kommentare.

Empfehlungen & Referenzen

① Nachdem ich diesen Artikel gelesen hatte, dachte ich, dass es Menschen gibt, die die gleiche Idee haben, und beschloss, diesen Kommentar zu schreiben. Sie können auch sehen, aus welcher Philosophie die Objektorientierung gemacht wurde. https://qiita.com/s_yuche/items/d46c7c843a56e6b2ebb7

② Es wird dir sagen, welche Art von Fee als sieben Tugenden gut ist. Ich kann nicht sagen, dass alles so ist, aber es gibt viele Dinge, die ich verstehen kann. https://www.kaitoy.xyz/2015/10/28/seven-virtues-of-good-object/

③ Ich habe Refactoring in [diesem Buch] studiert (https://www.amazon.co.jp/ Refactoring - Bestehenden Code sicher verbessern - OBJECT-TECHNOLOGY-Martin-Fowler / dp / 427405019X) .. Ich empfehle es sehr. Es gab jedoch einige Stellen, an denen der Code weggelassen wurde und der Inhalt etwas alt war. Daher empfehlen wir diesen mit fast dem gleichen Inhalt. [[Amazon] Einführung in das in Java erlernte Refactoring](https://www.amazon.co.jp/ Einführung in das in Java erlernte Refactoring-Yuki-Hiroshi / dp / 4797337990 /)

Recommended Posts

Objektorientiert, das von Feen verstanden werden kann
Grundlegende funktionale Schnittstelle, die in 3 Minuten verstanden werden kann
Java (Super Beginner Edition), das in 180 Sekunden verstanden werden kann
Mecab-Installation, die fast durch Eingabe eines Befehls erfolgen kann
Organisieren Sie Methoden, die mit StringUtils verwendet werden können
Speichern Sie die Daten, die von JavaFX gelesen werden können, als PNG
Schreiben einer Klasse, die in Java bestellt werden kann Ein kleines Standard-Memo
"Vererbung", die auch Anfänger der Objektorientierung verstehen können
Über die Sache, dass hidden_field wahnsinnig benutzt werden kann
Private Methoden können durch öffentliche Methoden überschrieben werden oder nicht
Polymorphismus, den auch Anfänger der Objektorientierung verstehen können
Praktische Tastenkombinationen für Eclipse
Ich habe ein Rätsel ausprobiert, das nur von den unteren 10% der schlechten Ingenieure gelöst werden kann
Liste der Geräte, die mit Swift UI in der Vorschau angezeigt werden können
Erstellen Sie ein Seitensteuerelement, das mit RecyclerView verwendet werden kann
Erstellen Sie eine JAR-Datei, die auf Gradle ausgeführt werden kann
Firebase-Realtime-Datenbank für Android, die mit Kopie verwendet werden kann
Probleme, die leicht mit Java und JavaScript verwechselt werden können
Einführung in Rakefile, die in ca. 10 Minuten durchgeführt werden kann
Suchen Sie eine Switch-Anweisung, die in einen Switch-Ausdruck konvertiert werden kann
Es scheint, dass MDC zwischen Anwendungen weitergegeben werden kann, indem der Kontext zusammen mit Spring WebFlux verwendet wird.
So erstellen Sie ein Schlüsselpaar von ecdsa in einem Format, das von Java gelesen werden kann