zoukankan      html  css  js  c++  java
  • 如何创建一个不可变类

    1 不可变类的5大特征

    • 类不能被继承,方法不能被子类覆写,所以类或者方法定义为final
    • 保证成员变量不被外部访问,所以private修饰
    • 不提供set方法
    • 对于类中可变成员,get方法返回的是对象的拷贝,解除引用关
    • 通过构造方法初始化成员变量,如果成员变量是非可变类型,一般指的是引用类型,则不能直接赋值,要通过深拷贝后再赋值

    2 创建一个不可变类

    package Collection;
    
    public final class NoChangeClass {
        private int[] arr;
        public NoChangeClass(int[] array){
            this.arr = array.clone();
        }
        public int[] getArr(){
            return arr.clone();
        }
    }
    
    

    3 不可变类的测试

    package Collection;
    
    public class Test4 {
        public static void main(String[] args) {
            int[] arr = {4,5,6,7};
            NoChangeClass instance = new NoChangeClass(arr);
            arr[0] = 88;
            int[] arr1 = instance.getArr();
            for (int i:arr1
                 ) {
                System.out.println(i);  // 4,5,6,7
            }
        }
    }
    
  • 相关阅读:
    class和struct
    类内初始值(c++11)
    默认初始化、值初始化
    聚合类
    对象
    排序算法的比较
    快速排序
    堆排序
    ubunu设置java命令为全局的命令-添加到全局环境变量
    Mina笔记
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/13042683.html
Copyright © 2011-2022 走看看