• java封装中的private关键字和set及get方法


    封装:
        隐藏对象的属性值和实现的方式,对外只提供访问的公共方式。
    好处:
        提供啊代码的复用性
        隐藏对象的属性值和实现的方式
        提高安全性
    封装的原则性:
        把不需要对外界属性内容都隐藏起来,对外只提供访问方式。
        
    private关键字:
    1-是一个权限修饰符
    2-可以修饰成员变量
    3-被修饰的成员只能在本类中被访问。

    • 如果一个属性是 public,那么外部可以直接对这个属性进行读取与修改;
    • 如果一个属性是 private,那么外部不可以直接对这个属性进行读取与修改,而是通过这个类提供的 get、set 方法去访问。

    也就是说,前者把控制权交给别人,而后者的控制权还在自己手中。我举几个简单的例子:

    • 比如说一个只读属性,可以提供 get 方法给外界调用读取,但是不允许修改,那么这时候可以不提供 set 方法,或者在 set 方法中抛出异常;
    • 比如我的数据格式与别人使用的格式不同,那么我可以在 get 与 set 方法中,加上进行格式转换的代码;
    • 比如我的数据可以被读取与修改,但是修改时候必须经过我的验证,那么我的 set 方法中会添加数据验证的代码。

    也就是说,get、set 方法的主要作用是控制外界对私有属性的访问。这一点,将属性声明为 public 是做不到的。

    例如:

    /**
    * 缓存类
    */
    @Component//加入到springIOC容器当中
    public class BaseCache {
    
        //先写一个声明,这样才知道构建哪一个类型的缓存;别导错包是Google的
        private Cache<String,Object> tenMinuteCache = CacheBuilder.newBuilder()
                //设置缓存初始值大小,应该合理设置,后续会扩展
                .initialCapacity(10)
                //最大值,设置过大会有内存冲突等问
                .maximumSize(100)
                //并发数设置
                .concurrencyLevel(5)//换存过期时间,写入后10分钟过期
                .expireAfterWrite(600, TimeUnit.SECONDS)//统计换存命中率
                .build();//构建类
    
        //private修饰,所以需要set和get方法
        public Cache<String, Object> getTenMinuteCache() {
            return tenMinuteCache;
        }
    
        public void setTenMinuteCache(Cache<String, Object> tenMinuteCache) {
            this.tenMinuteCache = tenMinuteCache;
        }
    }
  • 相关阅读:
    ACM Dance Recital(dfs+剪枝)
    矩阵快速幂
    分页实现复选框的选中状态
    MemCached 和redis的区别
    调用存储过程传值
    实现js中的时间格式中的T
    实现下载完成
    模态框实现功能后刷新父类页面
    JSON.parse()、JSON.stringify()和eval()的作用
    全选反选珍藏班版
  • 原文地址:https://www.cnblogs.com/ooo888ooo/p/13224031.html
Copyright © 2020-2023  润新知