Vous utilisez setter / getter, non? ..
Pourquoi avez-vous besoin de setter / getter? ・ Qu'est-ce que setter / getter? ・ N'aime pas le setter / getter · Pourquoi tu en as besoin ・ Pourquoi ça existe Je vais expliquer dans l'ordre de.
Qu'est-ce qu'un setter / getter?
.....
Celui à régler </ b>
Obtenez-le </ b>
Ce niveau de compréhension est correct w
Exemple: définir / obtenir la date d'hier, d'aujourd'hui et de demain et la sortie
Date date = new Date();
private Date yesterdayDate; //Date d'hier
private Date currentDate; //La date d'aujourd'hui
private Date tomorrowDate; //La date de demain
//setter: date du jour
public void setCurrentDate(Date currentDay) {
this.currentDay = currentDay;
}
//getter: date du jour
public Date getCurrentDate() {
return currentDay;
}
//Omis ci-dessous...
//setter: date d'hier
//getter: date d'hier
//setter: date de demain
//getter: date de demain
public static void main(String[] args) throws Exception {
//Défini aujourd'hui
calendar.setTime(date);
setCurrentDate(calendar.getTime());
//Définir hier
calendar.add(Calendar.DAY_OF_MONTH, -1);
setYesterdayDate(calendar.getTime());
//Définir demain
calendar.add(Calendar.DAY_OF_MONTH, 1);
setTomorrowDate(calendar.getTime());
//Montrer hier
System.out.println("Date d'hier:" + getYesterdayDate());
//Afficher aujourd'hui
System.out.println("La date d'aujourd'hui:" + getCurrentDate());
//Montrer demain
System.out.println("Date de demain:" + getTomorrowDate());
}
Comme ça.
C'est setXXXXX, getXXXXX.
Dans l'exemple, la méthode est également privée car elle est appelée en définissant la variable dans la classe, mais il n'y a pas de problème.
Définir les variables en privé </ b> et setter et getter sont créés en public </ b>.
1. Cela seul ajoute du code </ b> setter: 3 lignes getter: 3 lignes
Oui, ce n'est que 6 lignes. 6 lignes même si je ne veux pas gâcher si possible ...
2. Gestion des problèmes </ b> Pour la même raison que 1, plus le code est long, plus il est lourd à gérer. Seulement set et get, mais deux méthodes seront ajoutées. C'est tout.
3. Le mouvement se fait en interne </ b>
setCurrentDate(calendar.getTime());
Cette méthode elle-même ne fixe pas la date d'aujourd'hui. Dans la méthode
this.currentDay = currentDay;
C'est faire.
getter
return currentDay;
Vous pouvez l'obtenir pour renvoyer la date.
En d'autres termes, la date du jour elle-même
Passer les variables avec = </ b> Renvoie une variable avec retour </ b>
C'est une traduction installée. Puis. ..
Passer les variables avec = </ b> Renvoie une variable avec retour </ b>
Si vous le faites dedans, vous ne devriez pas avoir besoin d'un setter / getter. Toutes les dates
//set
this.currentDay = currentDay;
//get
currentDay;
Cela devrait être bien. .. Alors pourquoi en avez-vous besoin?
1. Pour protéger les variables </ b>
C'est public </ b> qui crée et définit / récupère les variables dans private </ b>. Donc, à part cela, vous ne pouvez pas définir / obtenir </ b>.
・ Interdire le réglage avec = ci-dessus et régler uniquement avec le setter ・ Interdisez l'acquisition directe et obtenez uniquement avec getter Cela limite le réglage / l'obtention de la valeur de la variable.
2. Pour clarifier où vous définissez / obtenez </ b>
Pour la même raison que 1. En utilisant setter / getter, l'endroit où vous définissez / obtenez devient clair. De plus, s'il tombe à l'endroit où vous vous trouvez, il devient clair que vous ne l'avez pas réglé avant cela.
Cependant, la théorie inutile du setter / getter peut ou non être régulièrement excitée.
Puis. ..
setXXX getXXX
Sans regarder la structure interne Cela seul sait ce que vous faites </ b>.
setCurrentDate // Définir la date du jour getYesterdayDate // Récupère la date d'hier setOneMonthAgo // Définit la date il y a un mois getOneYearDate // Obtenez la date un an plus tard
Comme ça.
Je l'ai écrit jusqu'à présent, mais Je pense personnellement que certaines parties existent par convention </ b>.
Quoi qu'il en soit, je déteste vraiment l'augmentation du code. ..
Mais! Quelque chose comme kotlin inclut setter / getter.
val currentDate :Date; //La date d'aujourd'hui
Oui. C'est la fin w
Disons qu'il a setter / getter comme structure interne de var. .. Au fait, seul le getter est fait au moment de val.
Récemment, je n'ai pas à me soucier d'écrire setter / getter. Merci ~ Merci!
https://qiita.com/katolisa/items/6cfd1a2a87058678d646
http://d.hatena.ne.jp/Nagise/20141010/1412930502
https://qiita.com/SYABU555/items/7cc5909c119ec9ab0288
Recommended Posts