Java属性封装:getter属性类型为Date
例子:
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相关推荐
- java中能对属性封装吗_JAVA中的封装
JAVA中的封装性就是指对外部不可见. 封装之后的属性和方法对象是不能直接访问的. 类中的全部属性都必须封装,封装之后的属性必须通过setter和getter方法设置和取得. package pack ...
- 【java】java获取对象属性类型、属性名称、属性值
java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...
- 《JAVA练习题目11》学生类有属性姓名(字符串类型)和选修课程信息(ArrayList<Course>对象)两个属性,和三个方法
学生类有属性姓名(字符串类型)和选修课程信息(ArrayList对象)两个属性,和三个方法 一个用于初始化学生名字的构造方法:一个添加选修课程的addCourse方法:一个获取所有课程平均分的getA ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 六 ( 属性类型 | Code 属性 | 属性名称索引 | 属性长度 | 操作数栈最大深度 | 局部变量存储空间 | 字节码长度 )
文章目录 前言 一.属性类型 二.Code 属性表数据结构 三.属性名称索引 四.属性长度 五.操作数栈最大深度 六.局部变量存储空间 七.字节码长度 八.存储字节码指令的一系列字节流 前言 上一篇博 ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )
文章目录 前言 一.方法表结构 二.方法计数器 三.方法表数据解析 ( init 构造方法 ) 1.方法访问标志 2.方法名称索引 3.方法返回类型 4.方法属性数量 前言 上一篇博客 [Java 虚 ...
- 在java中为什么_属性绑定到类型_方法绑定到对象_13. Java基础之类型信息(RTTI和反射)...
一. Java反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据"类的部分已经的信息"来还原"类的全部的信息".这里"类的部 ...
- java实体类中有枚举类型_实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以...
通常,我们都是在业务层和界面层使用枚举类型,这能够为我们编程带来便利,但在数据访问层,不使用枚举类型,因为很多数据库都不支持,比如我们现在用的SqlServer2008就不支持枚举类型的列,用的时候也 ...
- 封装设置属性,一家人都要整整齐齐系列(1) JAVA泛型的实现原理
1.基本学过JAVA的人都知道一点泛型,明白常出现的位置和大概怎么使用.在类上为:class 类名<T> {} 在方法上为:public <T> void 方法名 (T x){ ...
- java中蛇的属性有哪些_学习Java类的属性
学习Java类的属性-武汉北大青鸟 Public.private.protected显示了三种类中的属性和服务的类型,public是可以随意访问的.private是外界不能访问的(显示了数据的封装性) ...
- 通过PropertyDescriptor反射获取属性的 getter/setter 方法
Java类中的私有的(private)属性是获取不到的(即使使用继承依然获取不到),那如果非要获取私有属性的值怎么办呢?一般的做法是将该java类封装称为一个JavaBean,即封 ...
最新文章
- git: No refs in common and none specified; doing no
- 雷林鹏分享:Lua 错误处理
- mysql 查询日志介绍
- python网页开发实现本地上传_树莓派 python 如何将本地文件上传到指定的服务器页面上...
- 基于OpenCV文字特征提取
- consul 服务发现 集群 docker 版
- itunes gift card apple id 充值接口API秒冲接口收藏
- C64+DSP资源手册笔记
- 会声会影编辑html,用会声会影剪辑视频快速入门技巧
- TCO14, I bought a watch last year
- net start mysql无法启动数据库的解决办法
- 【Python】绘制三维立体图
- 智慧灯杆(路灯)控制系统平台架构的主要设备有哪些?
- TCP网络调试助手上提示错误:“1035 未知错误”的有效解决方法,本人实测确实可行
- axios 的 qs库
- UVa 11437 (梅涅劳斯定理) Triangle Fun
- 计算机二级考试字处理真题,计算机二级office字处理软件的重难点总结
- linux wps不能输入中文,Ubuntu系统中WPS不能输入中文该怎么办?
- Linux 版本的百度云盘来了!!!
- 手把手教学使用Halo搭建自己的博客网站
热门文章
- 输入n个字符串字典序排序_FSST - 快速字符串压缩算法
- Warning: Instance created by `useForm` is not connect to any Form element. Forget to pass `form` pro
- 网络推广专员教大家网站SEO优化中锚文本的使用技巧
- 网络营销专员浅析企业网站网络营销的多个优势!
- 网站怎样建设才能更好的吸引住用户呢?
- oracle数据库多表嵌套,sql – 在oracle中更新多个嵌套表中的多个记录
- java+criteriaquery_Hibernate动态条件查询(Criteria Query)
- android 取消和svn关联_Android Studio如何取消与SVN的关联
- (转载)Linux信息资源
- Kali国内源更新sources.list