什么是更改器方法?什么是访问器方法?

本文通过LocalDate的plusDays方法和GregorianCalendar的add方法,阐述了访问器方法(如LocalDate的plusDays)和更改器方法(如GregorianCalendar的add)的区别。访问器方法在调用后不会改变对象状态,而更改器方法则会导致对象状态的直接更新。这两个概念对于理解和使用Java或其他编程语言中的对象属性操作至关重要。
摘要由CSDN通过智能技术生成

什么是更改器方法,什么是访问器方法?

更改器方法:调用方法后对象的状态会发生改变

访问器方法:调用方法后对象状态不发生变化

区别在于是否只访问对象而不改变对象状态。

访问器方法:

以LocalDate为例。

调用LocalDate的plusDays方法:

LocalDate newDate = nowDate.plusDays(500);

调用这个方法后,nowDate表示的日期还是不会变,会生成一个距离nowDate表示日期500天后的新LocalDate对象,然后把这个对象赋给newDate,原来的nowDate实际上没有发生任何改变,他表示的日期还是没有变。

同样的,String类的toUpperCase方法也会返回一个将字符大写的新字符串,而原字符串不发生变化。

这样的方法我们称之为访问器方法。

更改器方法:

以GregorianCalendar类为例,这是Java早期用来处理日期的类。以下代码表示一个日期新增1000天:

GregorianCalendar someDay = new GregorianCalendar(1999,11,31);//注意,这个日期中的月份是从0表示到11的somDay.add(Calendar.DAY_OF_MONTH,1000);

再次单独访问someDay查看日期的年月日:

year = someDay.get(Calendar.YEAR);//2002month = someDay.get(Calendar.MONTH) + 1;//09day = someDay.get(Calendar.DAY_OF_MONTH);//26

可以发现,someDay自身的状态发生了改变,表示的日期变大了1000天。

这样子的访问后会改变对象状态的方法称之为更改器方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值