例子:

private Date birthDay;public Date getBirthDay(){return birthDay;}

上段代码会破坏封装性!为什么?用什么方式好?

这样封装有些时候会间接的修改属性birthDay。

使用对象的clone方法就不会破坏封装性。

public Date getBirthDay(){return birthDay.clone();}

Java核心技术卷一给出的解释:如果需要返回一个可变对象的引用,应该首先对它进行克隆(clone)。对象clone是指存放在另一个位置上的的对象副本。

此文对此解释到位,详情:http://blog.chinaunix.net/uid-26434689-id-3241005.html

此文的评论很好,详情:http://bbs.csdn.net/topics/240007740

转载于:https://www.cnblogs.com/lynnSun/p/7590851.html

Java属性封装:getter属性类型为Date相关推荐

  1. java中能对属性封装吗_JAVA中的封装

    JAVA中的封装性就是指对外部不可见. 封装之后的属性和方法对象是不能直接访问的. 类中的全部属性都必须封装,封装之后的属性必须通过setter和getter方法设置和取得. package pack ...

  2. 【java】java获取对象属性类型、属性名称、属性值

    java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...

  3. 《JAVA练习题目11》学生类有属性姓名(字符串类型)和选修课程信息(ArrayList<Course>对象)两个属性,和三个方法

    学生类有属性姓名(字符串类型)和选修课程信息(ArrayList对象)两个属性,和三个方法 一个用于初始化学生名字的构造方法:一个添加选修课程的addCourse方法:一个获取所有课程平均分的getA ...

  4. 【Java 虚拟机原理】Class 字节码二进制文件分析 六 ( 属性类型 | Code 属性 | 属性名称索引 | 属性长度 | 操作数栈最大深度 | 局部变量存储空间 | 字节码长度 )

    文章目录 前言 一.属性类型 二.Code 属性表数据结构 三.属性名称索引 四.属性长度 五.操作数栈最大深度 六.局部变量存储空间 七.字节码长度 八.存储字节码指令的一系列字节流 前言 上一篇博 ...

  5. 【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )

    文章目录 前言 一.方法表结构 二.方法计数器 三.方法表数据解析 ( init 构造方法 ) 1.方法访问标志 2.方法名称索引 3.方法返回类型 4.方法属性数量 前言 上一篇博客 [Java 虚 ...

  6. 在java中为什么_属性绑定到类型_方法绑定到对象_13. Java基础之类型信息(RTTI和反射)...

    一. Java反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据"类的部分已经的信息"来还原"类的全部的信息".这里"类的部 ...

  7. java实体类中有枚举类型_实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以...

    通常,我们都是在业务层和界面层使用枚举类型,这能够为我们编程带来便利,但在数据访问层,不使用枚举类型,因为很多数据库都不支持,比如我们现在用的SqlServer2008就不支持枚举类型的列,用的时候也 ...

  8. 封装设置属性,一家人都要整整齐齐系列(1) JAVA泛型的实现原理

    1.基本学过JAVA的人都知道一点泛型,明白常出现的位置和大概怎么使用.在类上为:class 类名<T> {} 在方法上为:public <T> void 方法名 (T x){ ...

  9. java中蛇的属性有哪些_学习Java类的属性

    学习Java类的属性-武汉北大青鸟 Public.private.protected显示了三种类中的属性和服务的类型,public是可以随意访问的.private是外界不能访问的(显示了数据的封装性) ...

  10. 通过PropertyDescriptor反射获取属性的 getter/setter 方法

              Java类中的私有的(private)属性是获取不到的(即使使用继承依然获取不到),那如果非要获取私有属性的值怎么办呢?一般的做法是将该java类封装称为一个JavaBean,即封 ...

最新文章

  1. git: No refs in common and none specified; doing no
  2. 雷林鹏分享:Lua 错误处理
  3. mysql 查询日志介绍
  4. python网页开发实现本地上传_树莓派 python 如何将本地文件上传到指定的服务器页面上...
  5. 基于OpenCV文字特征提取
  6. consul 服务发现 集群 docker 版
  7. itunes gift card apple id 充值接口API秒冲接口收藏
  8. C64+DSP资源手册笔记
  9. 会声会影编辑html,用会声会影剪辑视频快速入门技巧
  10. TCO14, I bought a watch last year
  11. net start mysql无法启动数据库的解决办法
  12. 【Python】绘制三维立体图
  13. 智慧灯杆(路灯)控制系统平台架构的主要设备有哪些?
  14. TCP网络调试助手上提示错误:“1035 未知错误”的有效解决方法,本人实测确实可行
  15. axios 的 qs库
  16. UVa 11437 (梅涅劳斯定理) Triangle Fun
  17. 计算机二级考试字处理真题,计算机二级office字处理软件的重难点总结
  18. linux wps不能输入中文,Ubuntu系统中WPS不能输入中文该怎么办?
  19. Linux 版本的百度云盘来了!!!
  20. 手把手教学使用Halo搭建自己的博客网站

热门文章

  1. 输入n个字符串字典序排序_FSST - 快速字符串压缩算法
  2. Warning: Instance created by `useForm` is not connect to any Form element. Forget to pass `form` pro
  3. 网络推广专员教大家网站SEO优化中锚文本的使用技巧
  4. 网络营销专员浅析企业网站网络营销的多个优势!
  5. 网站怎样建设才能更好的吸引住用户呢?
  6. oracle数据库多表嵌套,sql – 在oracle中更新多个嵌套表中的多个记录
  7. java+criteriaquery_Hibernate动态条件查询(Criteria Query)
  8. android 取消和svn关联_Android Studio如何取消与SVN的关联
  9. (转载)Linux信息资源
  10. Kali国内源更新sources.list