在這個(gè)實(shí)例中,我們將學(xué)習(xí)如何用Java創(chuàng)建一個(gè)不可變的類(lèi)。
要理解此示例,您應(yīng)該了解以下Java編程主題:
final class Immutable { private String name; private int date; Immutable(String name, int date) { //初始化不可變變量 this.name = name; this.date = date; } //私有 getter 方法 public String getName() { return name; } public int getDate() { return date; } } class Main { public static void main(String[] args) { //創(chuàng)建不可變對(duì)象 Immutable obj = new Immutable("nhooo", 2011); System.out.println("Name: " + obj.getName()); System.out.println("Date: " + obj.getDate()); } }
輸出結(jié)果
Name: nhooo Date: 2011
在Java中,不可變類(lèi)是指那些值不變的類(lèi)。要?jiǎng)?chuàng)建一個(gè)不可變的類(lèi),請(qǐng)注意這里:
該類(lèi)被聲明為final,因此無(wú)法擴(kuò)展
類(lèi)成員 name 和 date 被聲明為 private,所以不能在類(lèi)外訪問(wèn)
不包含任何setter方法,因此外部類(lèi)無(wú)法更改類(lèi)成員
getter方法返回類(lèi)成員的副本
類(lèi)成員使用構(gòu)造函數(shù)初始化