Java Getter方法返回类对象
来源:互联网 发布:mac虚拟机 360优化 编辑:程序博客网 时间:2024/06/08 08:07
首先创建一个类:
/** * 雇员类 * @author yifan * @version 1.0 2014-05-12 */class Employ {/** * 构建一个新的职员类 * @param name 职员姓名 * @param salary 工资 * @param hireDate 入职时间 */public Employ (String name, double salary, Date hireDate) {this.name = name;this.salary = salary;this.hireDate = hireDate;}/** * 获取姓名 * @return 姓名 */public String getName() {return this.name;}/** * 获取当前工资 * @return 当前工资 */public double getSalary() {return this.salary;}/** * 安全的获取入职时间 * @return 入职时间 */public Date getHireDate() {return (Date) this.hireDate.clone();}/** * 非安全的获取入职时间 * @return */public Date gethireDate() {return this.hireDate;}/** * 提高工资 * @param byPercent 提高的系数 */public void raiseSalary (double byPercent) {this.salary += this.salary*byPercent/100;}private String name;private double salary;private Date hireDate;}
在main方法中添加如下代码
// 下面试图修改员工的入职日期// 不安全的获取信息方法使用Date date= staff[0].gethireDate();String name = staff[0].getName();name = name.substring(2);System.out.println(name);double ten = 10 * 365.25 * 24 * 60 * 60 * 1000;date.setTime(date.getTime() - (long)ten);System.out.println("不安全的信息访问:" + staff[0].getName() + staff[0].getHireDate().toString());// 安全的获取信息放法使用Date date1= staff[1].getHireDate();double ten1 = 10 * 365.25 * 24 * 60 * 60 * 1000;date.setTime(date1.getTime() - (long)ten1);System.out.println("安全的信息访问:" + staff[1].getName() + staff[1].getHireDate().toString());
上面的没有定义的对象自己去创建
运行程序后的结果是
张三123不安全的获取信息方法调用张三Mon Dec 12 12:00:00 CST 1977安全的获取信息方法调用李四Sat Jan 23 00:00:00 CST 1999
因为date是一个对象,Java中对于对象是引用传递, 所以实际上date就是指向员工入职时间的一个指针,所以对date对象进行了修改就相当与修改了员工的入职时间
那么问题2就来了
上面对name进行了修改位置为什么没有更改员工的姓名呢?
因为name对象的修改实际上就是将name指向了一个新的地方,而不是修改员工名字
说的不是很明白,希望大神无喷!!!
0 0
- Java Getter方法返回类对象
- Java学习笔记之三--类和对象以及Setter和Getter方法的使用
- JAVA中的setter//getter()方法
- lombok注解为java类生成Getter/Setter方法
- lombok注解为java类生成Getter/Setter方法
- java 方法返回对象的问题
- java中的setter()、getter()方法用法
- 【Java基础】setter与getter方法
- JavaScript对象中属性的getter和setter方法
- JavaScript对象中属性的getter和setter方法
- Socket类的getter和setter方法
- Socket类的getter和setter方法
- Java网络编程(18):Socket类的getter和setter方法(2)
- Java的setter方法和getter方法的使用
- 【java】方法应该返回空对象还是null
- ajax返回java对象
- Java返回对象快捷键
- 关于java的setter&getter方法的注意事项
- JVM管理内存就像公司入职与裁员
- 20060817-Spatial transformations: Three-dimensional rotation
- 通过微信谈产品
- 关于uboot的makefile 和 make zImage
- Tree Summing - UVa 112 简单二叉树(丧病的数据输入)
- Java Getter方法返回类对象
- 数字图像处理的就业前景与学习资源
- 简介使用smack实现xmpp通讯(一)
- UVA之1398 - Meteor
- java回调函数
- 为Eclipse定制你自己的注释模板变量
- jquerymobile 学习笔记——新手常见问题
- Log的使用
- 填一个坑。关于把ruby编译到android上的一个遗留问题。