[JAVA] Warum brauchen Sie überhaupt Setter / Getter?

Du benutzt Setter / Getter, oder? ..

Warum brauchst du Setter / Getter? ・ Was ist Setter / Getter? ・ Abneigungen gegen Setter / Getter · Warum brauchst Du es ・ Warum es existiert Ich werde in der Reihenfolge von erklären.

Was ist ein Setter / Getter?

Was ist ein Setter / Getter?

.....

Der einzustellende </ b>

Hol es dir </ b>

Diese Ebene des Verständnisses ist in Ordnung w

Beispiel: Legen Sie das Datum von gestern, heute und morgen fest und rufen Sie es ab



Date date = new Date();

private Date yesterdayDate; //Gestern Datum
private Date currentDate;   //Heutiges Datum
private Date tomorrowDate;  //Das Datum von morgen

//Setter: heutiges Datum
public void setCurrentDate(Date currentDay) {
    this.currentDay = currentDay;
}

//Getter: das heutige Datum
public Date getCurrentDate() {
    return currentDay;
}

//Unten weggelassen...
//Setter: gestriges Datum
//Getter: das gestrige Datum
//Setter: das Datum von morgen
//Getter: das Datum von morgen

public static void main(String[] args) throws Exception {
        //Set heute
        calendar.setTime(date);
        setCurrentDate(calendar.getTime());

        //Set gestern
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        setYesterdayDate(calendar.getTime());

        //Morgen einstellen
        calendar.add(Calendar.DAY_OF_MONTH, 1);
        setTomorrowDate(calendar.getTime());
        
        //Show gestern
        System.out.println("Datum von gestern:" + getYesterdayDate());
        //Show heute
        System.out.println("Heutiges Datum:" + getCurrentDate());
        //Show morgen
        System.out.println("Morgen Datum:" + getTomorrowDate());
}

So was.

Es ist setXXXXX, getXXXXX.

Im Beispiel ist die Methode auch privat, da sie durch Festlegen der Variablen in der Klasse aufgerufen wird, aber es gibt kein Problem.

Variablen privat festlegen </ b> Setter und Getter werden öffentlich erstellt </ b>.

Ekelhafter Teil von Setter / Getter

1. Das allein fügt Code </ b> hinzu Setter: 3 Zeilen Getter: 3 Zeilen

Ja, das sind nur 6 Zeilen. 6 Zeilen, obwohl ich es nicht vermasseln möchte, wenn möglich ...

2. Problematische Verwaltung </ b> Aus dem gleichen Grund wie 1 ist die Verwaltung des Codes umso umständlicher, je länger er ist. Nur setzen und abrufen, aber zwei Methoden werden hinzugefügt. Das ist es.

3. Die Bewegung erfolgt intern </ b>

setCurrentDate(calendar.getTime());

Diese Methode selbst legt das heutige Datum nicht fest. In der Methode

this.currentDay = currentDay;

Das macht es.

Getter

return currentDay;

Sie können es bekommen, um das Datum zurückzugeben.


Mit anderen Worten, das heutige Datum selbst

Übergeben Sie Variablen mit = </ b> Gibt eine Variable mit return </ b> zurück

Es ist eine Übersetzung in. Dann. ..

Warum brauchst Du es

Übergeben Sie Variablen mit = </ b> Gibt eine Variable mit return </ b> zurück

Wenn Sie es tun, sollten Sie keinen Setter / Getter brauchen. Alle Daten

//set
this.currentDay = currentDay;
//get
currentDay;

Das sollte in Ordnung sein. .. Warum brauchst du es?

1. Zum Schutz von Variablen </ b>

Es ist public </ b>, das Variablen in private </ b> erstellt und setzt / abruft. Ansonsten können Sie nicht setzen / erhalten </ b>.

・ Einstellung mit = oben verbieten und nur mit Setter einstellen ・ Verbieten Sie die direkte Erfassung und erhalten Sie nur mit Getter Dies begrenzt das Setzen / Abrufen des Wertes der Variablen.

2. Um zu verdeutlichen, wo Sie </ b> einstellen / erhalten

Aus dem gleichen Grund wie 1. Durch die Verwendung von Setter / Getter wird der Ort, an dem Sie einstellen / erhalten, klar. Wenn es an die Stelle fällt, an der Sie es bekommen, wird klar, dass Sie es vorher nicht eingestellt haben.

Die unnötige Theorie des Setzers / Getters kann jedoch regelmäßig angeregt werden oder auch nicht.

Dann. ..

Warum es existiert

setXXX getXXX

Ohne auf die interne Struktur zu schauen Dies allein weiß, was Sie tun </ b>.

setCurrentDate // Setzt das heutige Datum getYesterdayDate // Das Datum von gestern abrufen setOneMonthAgo // Setzt das Datum vor einem Monat getOneYearDate // Erhalte das Datum ein Jahr später

So was.

Zusammenfassung

Ich habe es bisher geschrieben, aber Ich persönlich denke, dass es einige Teile gibt, die gemäß Konvention existieren </ b>.

Wie auch immer, ich hasse die Zunahme des Codes wirklich. ..

Aber! So etwas wie Kotlin beinhaltet Setter / Getter.

val currentDate :Date; //Heutiges Datum

Ja. Dies ist das Ende w

Nehmen wir an, es hat Setter / Getter als interne Struktur von var. .. Übrigens wird zum Zeitpunkt des Val nur Getter hergestellt.

In letzter Zeit muss ich mir nicht die Mühe machen, Setter / Getter zu schreiben. Danke ~ Danke!

Referenz

https://qiita.com/katolisa/items/6cfd1a2a87058678d646

http://d.hatena.ne.jp/Nagise/20141010/1412930502

https://qiita.com/SYABU555/items/7cc5909c119ec9ab0288