Java工作笔记-Java函数参传值传引用问题
发布日期:2021-06-30 10:40:55
浏览次数:2
分类:技术文章
本文共 2011 字,大约阅读时间需要 6 分钟。
目录
基本概念
最近的系统中,Java程序和C++程序混着,很多程序都是用Java搞的,不得不稍微研究下Java的细节,其中很关键的一点,就是如何在Java中传引用,因为要接收一些值,在代码中试了,用&这个玩意是没有效果的。
下面给出Java程序中函数传参数,哪个是传值,
这里发现,如果是基本数据类型:int这种,都是传值。
而自己写的Class为传地址过去,
Integer和String在封装后,里面有个final,这样实际是传地址,但赋值的时候,却创建了个新的。
代码与实例
程序运行截图如下:
源码如下:
public class Main { public static void main(String args[]) { int intFunctionValue = 100; intFunction(100); System.out.println("Main functionValue : " + intFunctionValue); System.out.println("---------- 华丽的分割线 ----------"); Integer IntegerFunctionValue = new Integer(100); IntegerFunction(IntegerFunctionValue); System.out.println("Main IntegerFunction : " + IntegerFunctionValue); System.out.println("---------- 华丽的分割线 ----------"); Struct struct = new Struct(); struct.setAge(17); struct.setName("heheda"); ClassFunction(struct); System.out.println("Main ClassFunction : " + struct); System.out.println("---------- 华丽的分割线 ----------"); } static void intFunction(int value){ value = 200; System.out.println("intFunction value : " + value); } static void IntegerFunction(Integer value){ value = 200; System.out.println("IntegerFunction value : " + value); } static void ClassFunction(Struct value){ value.setAge(18); value.setName("Hello World"); System.out.println("ClassFunction value : " + value); } static class Struct{ private Integer age; private String name; public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Struct{" + "age=" + age + ", name='" + name + '\'' + '}'; } }}
源码打包下载
地址如下:
转载地址:https://it1995.blog.csdn.net/article/details/103383323 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月07日 22时55分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!