Java Immutable(不可變)對(duì)象

2018-01-18 17:41 更新

Java面向?qū)ο笤O(shè)計(jì) - Java不可變對(duì)象


在創(chuàng)建狀態(tài)后無法更改其狀態(tài)的對(duì)象稱為不可變對(duì)象。

一個(gè)對(duì)象不可變的類稱為不可變類。

不變的對(duì)象可以由程序的不同區(qū)域共享而不用擔(dān)心其狀態(tài)改變。

不可變對(duì)象本質(zhì)上是線程安全的。

例子

以下代碼創(chuàng)建了不可變類的示例。

public  class  IntWrapper {
    private  final  int  value;

    public IntWrapper(int value) {
        this.value = value;
    }
    public int  getValue() {
        return value;
    }
}

注意

這是如何創(chuàng)建IntWrapper類的對(duì)象:

IntWrapper wrapper  = new IntWrapper(101);

在這一點(diǎn)上,包裝器對(duì)象保持101,并且沒有辦法改變它。

因此,IntWrapper類是一個(gè)不可變的類,它的對(duì)象是不可變的對(duì)象。

最好將所有實(shí)例變量聲明為final,這樣Java編譯器將在編譯期間強(qiáng)制實(shí)現(xiàn)不可變性。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)