以前学习C的 时候参数传递的方式有两种,一种叫"值传递",值传递传的是一个实体,通俗地说就是传值;另一种叫"引用传递",引用传递传的是指针。
在这里重点讨论以引用的方式传递参数的方式。
在java中只要不是new出来的对象那么就是
MyClass mc = new MyClass(); //在内存中生成MyClass对象
MyClass mc2 = mc; //将mc2指向mc在内存中的对象
上面的mc和cm2是同一个对象。
1. Operator opt = new Operator();
2. MyClass mc = new MyClass();
3. MyClass mc2 = mc;
4. mc.add();
5. System.out.println(mc.i);
6. System.out.println(mc2.i);
7. opt.sub(mc2);
8. System.out.println(mc.i);
9. System.out.println(mc2.i);
Operator opt = new Operator();
MyClass mc = new MyClass();
MyClass mc2 = mc;
mc.add();
System.out.println(mc.i);
System.out.println(mc2.i);
opt.sub(mc2);
System.out.println(mc.i);
System.out.println(mc2.i);
结果:
1. run:
2. 1
3. 1
4. 0
5. 0
6. 成功生成(总时间:0 秒)
run:
1
1
0
0
成功生成(总时间:0 秒)
1. Operator opt = new Operator();
2. MyClass mc = opt.getMyClass();
3. mc.add();
4. System.out.println("add:" + mc.i);
5. add(mc);
6. opt.sub1(mc);
7. System.out.println("sub1:" + mc.i);
8. opt.sub2(mc);//在方法里面对对象进行操作也会对main中的对象有影响,reference调用的结果
9. System.out.println("sub1:" + mc.i);
Operator opt = new Operator();
MyClass mc = opt.getMyClass();
mc.add();
System.out.println("add:" + mc.i);
add(mc);
opt.sub1(mc);
System.out.println("sub1:" + mc.i);
opt.sub2(mc);//在方法里面对对象进行操作也会对main中的对象有影响,reference调用的结果
System.out.println("sub1:" + mc.i);
运行结果:
1. run:
2. add:1
3. sub1:2
4. sub1:-98
5. 成功生成(总时间:0 秒)
分享到:
相关推荐
JNI是java调用C++程序的一种实现方法,网上有一些相关的资料,但不一定能适用,这个文档我在学习JNI时综合网上资料总结的,本人亲测能够实现,希望下载的网友有什么问题多多反馈,希望对学习JNI的朋友有所帮助
在matlab中设计GUI时的几种数据传递方式
方法参数传递(传值、传递引用的区别) , 方法重载(同名、参数形式不同) 字符串(常量、与字符常量的区别、连接运算、例2.18) 。。。。。。。 。。。。 第9章 流的概念 字节流的类的作用、类层次 字符流的类的...
开发中我们经常忽略了一些影响性能的细节,这里特总结出来供大家参考。
通过实现 Runnable 接口的类来实现多线程的方法是首先设计实现 Runnable 接口的类,然后创建 Thread 对象,并将实现 Runnable 接口的对象作为参数传递给 Thread 构造函数,最后使用 start 方法启动线程。
在 Java 中,基本数据类型不能作为对象,这就意味着它们不能被当作参数传递给方法,或者被用作集合中的元素。为了解决这个问题,Java 提供了包装类,它们可以将基本数据类型封装成对象,从而使得基本数据类型也可以...
在本实验中,我们定义了一个名为ff2的方法,该方法将两个参数传递给Power对象,并将其赋值给成员变量x和y。 六、创建类实例的方法 创建类实例是指创建对象的过程。在本实验中,我们使用new关键字来创建Power对象。...
"Java 程序设计课程学习总结与心得" Java 程序设计课程学习总结是指学习 Java 程序设计的总结和经验教训。本文将从 Java 语言的基础知识到高级部分的总结,涵盖面向对象编程、数组、字符串、流技术、异常处理等内容...
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...
数组总结(概念、定义、默认值、可变长参数、值传递与引用传递等)。1.冒泡排序: 两两相比(两个相邻的数进行比较) 条件成立 互换位置 外层循环控制比较的轮数 **轮数永远是 长度 -1 (n - 1)** 内层循环...
* 需要确保调用其他.exe 可执行程序的参数正确,避免出现参数错误。 Java 中调用其他.exe 可执行程序是非常有用的技术,可以帮助我们实现一些特殊的功能,提高应用程序的灵活性和可扩展性。但是,我们需要注意相关...
修复建议:String的split方法传递的参数是正则表达式,正则表达式本身用到的字符需要转义,如:句点符号“.”,美元符号“$”,乘方符号“^”,大括号“{}”,方括号“[]”,圆括号“()” ,竖线“|”,星号“*”,...
高校java初级入门教学资源。熟悉并设置JDK path 路径 熟悉eclipse开发环境。 要求同学们在开发环境中,创建一个以姓名和学号命名的工程名称,如zhangsan04010325; 在工程下的src目录下创建15个类包,如ex1,ex2…ex15...
Java程序设计语言使用值调用。也是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何基本数据类 ... 总结Java程序设计语言中,方法参数的使用情况: 1、一个方法不能修改一个基
主要代码审计方法是跟踪...敏感函数参数回溯,根据敏感函数,逆向追踪参数传递的过程。这个方法是最高效,最常用 的方法。大多数漏洞的产生是因为函数的使用不当导致的,只要找到这些函数,就能够快速挖掘想要的漏洞。
它允许把函数作为一个方法的参数,将函数作为参数传递进方法中。使用 Lambda 表达式可以使代码变的更加简洁紧凑。 Lambda 表达式的重要特征有: * 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。 ...
Java框架面试题总结 Java框架面试题总结是一个非常重要的知识领域,涵盖了Struts、MVC设计模式、Tiles框架、Struts标签库等多个方面。下面我们将详细地解释这些知识点,并对每个问题进行详细的解释。 1. Struts的...
实参是指方法调用时候实际传递的参数变量,形参是指方法的参数定义,是临时变量。 七、i++与++i的区别 i++是先把i的值赋给i++,i的值自增1,再把i++的值赋给i;++i是指先把i的值自增1,然后把i的值赋给++i。 八、&...
6. Java语言的方法和函数:方法的定义和调用、函数的参数传递、返回值类型等。 7. Java语言的面向对象编程基础知识:类和对象的关系、继承、多态、封装等。 8. Java语言的数组和集合:数组的声明和访问、ArrayList...