You use setter / getter, right? ..
Why do you need setters / getters? ・ What is a setter / getter? ・ Dislikes of setters / getters ・ Why you need it ・ Why does it exist? I will explain in the order of.
What is a setter / getter?
.....
The one to set </ b>
Get it </ b>
This level of understanding is okay w
Example: Set / get and output yesterday, today and tomorrow dates
Date date = new Date();
private Date yesterdayDate; //Yesterday date
private Date currentDate; //Today's date
private Date tomorrowDate; //Tomorrow date
//setter: today's date
public void setCurrentDate(Date currentDay) {
this.currentDay = currentDay;
}
//getter: today's date
public Date getCurrentDate() {
return currentDay;
}
//Omitted below...
//setter: yesterday's date
//getter: yesterday's date
//setter: tomorrow's date
//getter: tomorrow's date
public static void main(String[] args) throws Exception {
//Set today
calendar.setTime(date);
setCurrentDate(calendar.getTime());
//Set yesterday
calendar.add(Calendar.DAY_OF_MONTH, -1);
setYesterdayDate(calendar.getTime());
//Set tomorrow
calendar.add(Calendar.DAY_OF_MONTH, 1);
setTomorrowDate(calendar.getTime());
//Show yesterday
System.out.println("Yesterday's date:" + getYesterdayDate());
//Show today
System.out.println("Today's date:" + getCurrentDate());
//Show tomorrow
System.out.println("Tomorrow's date:" + getTomorrowDate());
}
Like this.
It's setXXXXX, getXXXXX.
In the sample, variables are set in the class and called, so the method is also private and there is no problem.
Set variables privately </ b> and setters and getters are created in public </ b>.
1. That alone adds code </ b> setter: 3 lines getter: 3 lines
Yes, this is just 6 lines. 6 lines even though I don't want to mess up if possible ...
2. Troublesome management </ b> For the same reason as in 1, the longer the code, the more cumbersome it is to manage. Only set and get, but two methods will be added. That's it.
3. The movement is done internally </ b>
setCurrentDate(calendar.getTime());
The method itself does not set today's date. In the method
this.currentDay = currentDay;
This is doing.
getter
return currentDay;
You can get it to return the date.
In other words, today's date itself
Pass variables with = </ b> Return variable with return </ b>
It is a translation set in. Then. ..
Pass variables with = </ b> Return variable with return </ b>
If you're doing it in, you shouldn't need a setter / getter. All dates
//set
this.currentDay = currentDay;
//get
currentDay;
This should be fine. .. So why do you need it?
1. To protect variables </ b>
It is public </ b> that creates and sets / gets variables in private </ b>. So, other than that, you can't set / get </ b>.
・ Prohibit setting with = above and set only with setter ・ Prohibit direct acquisition and get only with getter Limits setting / getting the value of a variable by doing so.
2. To clarify where you are setting / getting </ b>
For the same reason as 1. By using setter / getter, the place where you are setting / getting becomes clear. Also, if it falls at the place where you are getting, it becomes clear that you have not set it before that.
However, the setter / getter unnecessary theory may or may not be excited on a regular basis.
Then. ..
setXXX getXXX
Without looking at the internal structure This alone knows what you are doing </ b>.
setCurrentDate // Set today's date getYesterdayDate // Get yesterday's date setOneMonthAgo // Set the date one month ago getOneYearDate // Get the date one year later
Like this.
I wrote it so far, but I personally think that there are some parts that exist by convention </ b>.
Anyway, I really hate the increase in code. ..
But! Something like kotlin includes setters / getters.
val currentDate :Date; //Today's date
Yes. This is the end w
Let's say that we have setters / getters as the internal structure of var. .. By the way, at the time of val, only getters are made.
Recently, I don't have to bother to write setters / getters. Thank you ~ Thank you!
https://qiita.com/katolisa/items/6cfd1a2a87058678d646
http://d.hatena.ne.jp/Nagise/20141010/1412930502
https://qiita.com/SYABU555/items/7cc5909c119ec9ab0288
Recommended Posts