Java Getter方法返回类对象

Claude Code(1):手把手教你安装配置 Claude Code Claude Code 是一款强大的 AI 编程助手工具,能够帮助开发者提升编码效率。本文将详细介绍如何在不同操作系统上安装和配置 Claude Code,让你快速上手这款工具。 阅读详情

首先创建一个类:

/**
 * 雇员类
 * @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


问题1: 上面更改date的值为什么能够修改职员对象的入职时间呢?

因为date是一个对象,Java中对于对象是引用传递, 所以实际上date就是指向员工入职时间的一个指针,所以对date对象进行了修改就相当与修改了员工的入职时间

那么问题2就来了

上面对name进行了修改位置为什么没有更改员工的姓名呢?

因为name对象的修改实际上就是将name指向了一个新的地方,而不是修改员工名字



说的不是很明白,希望大神无喷!!!

产品缺陷检测:表面缺陷检测_(1).产品缺陷检测基础理论 确定像素之间的相似性准则,如灰度值的差异。 阅读详情

相关推荐

UE4游戏逆向实战:从HOOK明文包到自定义发包的完整流程(附加密算法解析)

本文详细解析了UE4游戏网络通信的逆向工程完整流程。从定位线程发包点、HOOK拦截明文封包,到逆向分析加密解密算法,最终实现自定义组包与加密发送。文章结合实战案例,为游戏安全研究和技术人员提供了一套清晰、可操作的方法论。

weixin_29009081的博客 1236

【JAVA】getter与setter方法的定义与使用

返回对象内部的成员变量的值用来读取私有属性的值,通常以get开头,后面跟上属性名,不带参数,返回属性的值。其中type代表属性的类型,getValue()为方法名,value为对象属性名。Getter方法通常被用于获取一个对象的私有属性值,因为私有属性不能被直接访问。用来设置成员变量,可以在方法里面过滤掉一些不合理的值用来设置私有属性的值,通常以set开头,后面跟上属性名,参数为要设置的值,无返回值。其中type代表属性的类型,setValue()为方法名,value为对象属性名。

2301_80854431的博客 1万+

DGX Spark上PyTorch GPU环境配置实战:CUDA 13.0与ARM架构全流程

在深度学习中,CUDA作为GPU加速计算的底层基础,其版本与深度学习框架(如PyTorch)的匹配直接影响模型训练的效率与稳定性。GPU环境配置不仅涉及驱动、CUDA工具链与框架运行时的协同,还依赖于硬件架构与预构建包的兼容性。在AI开发机Ubuntu系统上,正确对齐CUDA版本、计算能力架构及安装源,是避免环境故障、发挥硬件算力的关键。无论是面向个人AI超算还是通用GPU服务器,掌握版本对齐、路径隔离与验证方法,都能大幅提升开发效率。本文以DGX Spark为例,详解从环境摸底到PyTorch GPU版本

weixin_29483277的博客 219

java:lombok库方便的使用@Getter和@Setter

java:lombok库方便的使用@Getter和@Setter

分享前端开发工程师的一些日常生活、前端知识点、职业发展、对一些问题的看法、感悟等等 1236

数据结构:五岔路口交通管理红绿灯设计

我们可以知道这是一个“图”的着色问题,首先要考虑,为什么可行路线是13条?当然可以通过穷举得出,如果用公式:则是: 或者 因为一条路线必须包括一出一进两个方向 第一种答案的解法: 一、固定E为入口,则有C_4^1=4的可能; 二、除去E(因为E只有一个入向),剩下ABCD四个路口,然后因为C只有一个出方向,所以从剩下 的ABD中选择一个入口,即C_3^1; 三、再从剩下的三个出口任选

潘猫猫的世界 1万+

cadence数模混合仿真反标sdf

数模混合IC设计时经常要调用一些Verilog模块(最简单的例如SPI接口),在前仿时一般直接用rtl代码来仿真,但是后仿时要关注因寄生带来的延迟,避免这些额外的延迟导致时序错误,因此不能简单地采用RTL来仿真。 一般有两种办法:1是采用由RTL综合得到的门级电路来仿真,这种方法比较简单,但是缺点是规模较大,而且只包括门延迟不包括因版图导致的线延迟;如果想要仿真更精细,就要对该这部分门电路提取寄生参数; 另一种方式是利用sdf文件(standard delay format)来进行仿真。后端工具在布局布

长河柱天的博客 7274

Java 注解 getter

我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnN理解 Java 注解与 Getter 方法 什么是 Java 注解? Java 注解是 Java 5 引入的一种特性,用于向 Java 程序添加元数据。它们并不直接改变程序的代码行为,但可...

weixin_41320964的博客 355

KUKA机器人与S7-1200 PLC实现Profinet通讯配置步骤详解

在工业自动化产线中,PLC与工业机器人之间的高效数据交换是控制逻辑落地的关键。传统硬接线方案在信号点多时布线复杂、故障排查困难,而现场总线技术通过一根网线即可实现主从设备间的周期通讯。Profinet作为主流工业以太网协议,由S7-1200作为IO Controller主站,KUKA机器人作为IO Device从站,在WorkVisual与TIA Portal中完成设备组态、I/O映射及信号分配,即可替代成捆电缆,稳定传输启停、状态及报警信号。这一方案适用于汽车、3C、物流等行业的自动化产线,尤其适合需要扩

weixin_42519985的博客 251

Java学习笔记#09 Lombok @Getter和@Setter

Lombok的@Getter和@Setter文档翻译,以及一些我自己的笔记

嘻嘻呵呵的博客 3197

Android 12.0 framework系统修改安兔兔等显示的屏幕尺寸大小功能实现

在12.0的系统rom定制化开发中,在使用第三方app检测系统的一些信息中,比如安兔兔 设备信息等检测app中,有时候显示的屏幕尺寸大小和 产品规格书等信息不同,稍微有些差异,所以就需要看下系统framework层中,相关的设备信息是怎么读出来的,然后做些调整 接下来就来分析相关功能

安卓兼职framework和app工程师的博客 477

MicroChip的SmartFusion2的M2S090芯片的全流程开发环境搭建和Demo设计

MicroChip的SmartFusion2的M2S090芯片的全流程开发环境搭建和Demo设计

qq_45806640的博客 455

Lombok注解之@Getter

生成属性的get方法。注意:与setter不同的是,@Getter注解会生成final修饰的属性。

老猫喜欢今日爬山的博客 3501

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

as3 java对象_根据JAVA的POJO类生成AS3的VALUEOBJECT类

package tool;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.lang.reflect.Field;import org.apache.commons.lang3.StringUtils;/*** @aut...

weixin_35316606的博客 158

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java 获取实体对象值

如何实现Java获取实体对象值 概述 在Java开发中,获取实体对象的属性值是非常常见的操作。本文将介绍一种简单的方法来实现这个功能,适用于Java初学者。 流程图 #render_12_541831224-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;fo...

weixin_31459035的博客 182

Java中的Getter和Setter方法

Java中的常用到的Getter方法和Setter方法/创建学生信息类

2301_78160107的博客 1万+

JavaDay10 构造方法和 this 关键字

tags : java基础 flag: blue @toc JavaDay10 构造方法和 this 关键字 一、开发工具 Eclipse 准备工作: 打开Eclipse 第一步,会弹出 select a directory as workspace ,选择一个没有中文的路径,要保证自己能够找到; 第二步:反选欢迎界面; 第三步:设置字体大小 菜单栏 -> Window...

GJXAIOU 的 优快云 博客 212

Java的setter方法和getter方法的使用

java有三大特性:封装,继承还有多态。                   而今天,我来讲一下其中最重要的特性之一:封装。           首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。           1.概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,

前端学习之地 3万+

Java之封装性、getter方法setter方法、以及构造函数的作用

1、封装性(private) 首先我们来看一个例子: public class People { int age; String name; } public class Test { public static void main(String[] args) { People people = new People(); people.name = "张三"; people.age = 28; System.out

weixin_42377603的博客 6214

getter与setter方法

在Java中,getter方法用于获取类的私有属性的数值,而setter方法用于设置或修改类的私有属性的数值。命名规范。

2301_77318483的博客 3267

Getter/Setter方法的使用--java

** Getter/Setter方法的使用–java ** Java面向对象的三大特征为:封装、继承、多态 今天,我们就来聊一聊封装那些事儿 首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。 1.概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体...

南歌渔渡 6066

java中getter和setter方法的使用

使用了private对属性进行了封装,要访问私有属性,按照java的设计原则必须提供以下两种方法: 1. setter方法:主要用于进行属性内容的设置与修改 2. getter方法:主要用于属性内容的取得 private实现封装的最大特征在于:只允许本类访问,而不允许外部类访问。 class Person { private int age; private String name; public void setName(String n) { ...

柠檬精 1万+

getter 和 setter方法

getter 和 setter方法 概述: 就是属性封装后对外提供的获取和修改对应属性值的访问方式 getter方法:获取对应属性的属性值 格式:getXxx() Xxx :属性名首字母大写 setter方法:对的对应属性值进行修改 格式:setXxx() Xxx :属性名首字母大写 eclipse中的快捷键 ​ 对应有快捷键: alt+shift+s r 代码示例: public class PrivateDemo { //成员变量 private String name; p

A_Zeng_的博客 5944

java中的setter()、getter()方法用法

JAVA中的setter//getter()方法用法 public class Student { String name;public String getName() { return name; } public void setName(String name) { this.name = name; }public static void main(String[] args

justdo_itt的博客 1万+

JAVA的getter与setter方法

通过使用setter方法和getter方法,可以实现对对象属性的封装,提高了代码的可读性和可维护性。

C_helped的博客 1124

Java中getter和setter方法的作用

Java中getter和setter方法的作用

2401_83923080的博客 2004

java中定义Getter和Setter方法 语法 原理

通过定义Getter和Setter方法,我们可以控制属性的访问权限,同时还可以在Getter和Setter方法中添加额外的逻辑,例如数据验证、计算等。此外,如果我们将Setter方法的返回类型定义为int,那么就会导致Getter和Setter方法的返回类型不一致,从而增加代码的复杂性。Setter方法用于设置属性的值,它通常接受一个参数,该参数是要设置的属性值。Setter方法通常不需要返回值,因为它的作用是设置属性的值,而不是返回属性的值。因此,Setter方法的返回类型通常为void。

weixin_74774974的博客 2689

java getter返回值_使用Java中的getter方法返回私有集合

我有许多在内部使用私有集或列表的Java类.我希望能够使用get … List()方法返回这些集/列表.我正在考虑的替代方案:>返回对内部对象的引用>构建一个新的集/列表并填写它(这似乎是不好的做法?)>使用Collections.unmodifiableList(partitions);以下哪一项是解决此问题的最常见/最佳方式?解决方法:这里有许多方面需要考虑.正如其他人已经指...

weixin_29365481的博客 449
上一篇: 控制台输出日历(未优化版)
下一篇: 继承的基本演示
yfstdio
博客等级 码龄14年 3粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值