JAVA中的不可变类

JAVA中的不可变类

自定义不可变类需要注意:

1.使用private 和final修饰符修饰变量。

2.提供带参数的构造器用于根据参数来初始化类里的属性。

3.仅为该类的属性提供getter方法,不提供setter方法。

4.如果有必要,重写Object类中的equals方法和hashCode方法:在equals方法中根据关键属性来作为两个对象相等的标准,还要保证两个equals方法判断相等的对象的hashCode 也相等。例如:系统提供的String类:equals:根据对象里的字符序列来作为相等的标准,hashCode方法也是根据字符序列计算得到的

5.注意JAVA中的对象是引用传递,所以2与3中的初始化和get返回对象,最好new个新的对象,构造器中根据内容new个对象防止逻辑代码修改原对象造成修改了不可变类属性,get中new个对象同样防止逻辑代码修改get得到的对象(new后修改的就与类中的对象无关了,有点类似clone了一份副本让逻辑代码操作)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值