• Java 不可变类


    • 什么是不可变类
    1. 当你获得这个类的引用时,不能改变这个类的内容;
    2. 不可变类的实例一旦创建,其成员变量就不能够被修改;

      

    • 如何创建不可变类
    1. 成员变量均为private权限
    2. 不提供改变成员变量的对外接口,即set方法
    3. 所有方法均不可被重载,有两种实现方式:1) 所有方法均加上final关键字(弱不可变类) 2)使用 final class(强不可变类)
    4. 如果类的成员变量为可变子类,那么在初始化过程中,需要对这个可变子类,进行深度拷贝;

      范例:

     1 public class ImmuteDemo {
     2     private String name;  //String 为不可变类
     3     private Date date;    //Date 为可变类
     4 
     5     public ImmuteDemo(String name,Date date){
     6         this.name = name;
     7         this.date = new Date(date.getTime()); //对输入对象,进行拷贝
     8    //  date.setTime(2101);  改变输入对象,并不影响成员date的值
     9     }
    10 
    11     public String getName(){
    12         return name;
    13     }
    14 
    15     public Date getDate(){
    16         return new Date(date.getTime());
    17     }
    18 
    19     public static void main(String[] args) {
    20         Date date = new Date();
    21         ImmuteDemo immuteDemo = new ImmuteDemo("zhang san",date);
    22     }
    23 }
    24   

     

  • 相关阅读:
    Unity资源打包之Assetbundle
    集社交与金融为一体,平安天下通怎样推动互联网金融创新?
    json和pickle模块
    sys模块
    os模块
    random模块
    datetime模块
    time模块
    logging模块

  • 原文地址:https://www.cnblogs.com/liuyunAlex/p/5189151.html
Copyright © 2020-2023  润新知