java方法传值的问题
来源:互联网 发布:知乎windows客户端 编辑:程序博客网 时间:2024/06/06 01:30
转自: http://www.cnblogs.com/yujun19880729/p/3515490.html
基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress
引用类型包括:类类型,接口类型和数组。
public class TestValTran { public static void main(String[] args) { TestValTran testValTran = new TestValTran(); int i = 1; int j = 2; testValTran.swap1(i, j); System.out.println("i = " + i + ", j = " + j); User user = new User(1, 2); testValTran.swap2(user); System.out.println("user.i = " + user.getI() + ", user.j = " + user.getJ()); User user1 = new User(1, 2); testValTran.swap3(user1); System.out.println("user1.i = " + user1.getI() + ", user1.j = " + user1.getJ()); } /*** * 基本的数据类型,对应每个方法所对应的栈幁都有自己的局部变量表。也就是会自己创建一个基本数据类型的对象,不会对真实的对象产生影响 * * @param a * @param b */ public void swap1(int a, int b) { int temp = b; b = a; a = temp; } /** * 这种方式对user不会发生变化,只是把局部变量user先传递为外部user的引用,然后又重新重新赋值为temp的引用。没有对外部user引用的真实对象进行操作。所以不会生效 * * @param user */ public void swap2(User user) { User temp = new User(2, 1); user = temp; } /** * 这种传递了对象的引用之后,又获取了引用的对象,进行了修改,所以能生效 * * @param user */ public void swap3(User user) { int temp = user.getJ(); user.setJ(user.getI()); user.setI(temp); }}public class User { int i, j; public User(int i, int j){ this.i=i; this.j=j; } public int getI(){ return i; } public int getJ(){ return j; } public void setI(int i) { this.i = i; } public void setJ(int j) { this.j = j; }}
运行结果:
i = 1, j = 2
user.i = 1, user.j = 2
user1.i = 2, user1.j = 1
阅读全文
0 0
- java方法传值的问题
- java方法传值还是传引用的问题
- Java静态方法的问题
- Java方法的有关问题
- Java中方法参数传值问题
- Java NIO中SocketChannel read方法的返回值问题
- Java方法中有循环的时候返回值问题
- java中方法的参数的问题
- 总结java方法(函数)传值和传引用的问题
- 总结java方法(函数)传值和传引用的问题
- Java/C/C++中方法(函数)传值和传引用的问题
- 总结Java方法(函数)传值和传引用的问题
- 总结java方法(函数)传值和传引用的问题
- 总结Java方法(函数)传值和传引用的问题
- 总结java方法(函数)传值和传引用的问题
- 总结java方法(函数)传值和传引用的问题
- 总结java方法(函数)传值和传引用的问题
- 使用URLEncoder(java类)和decodeURIComponent(js的方法)解决javaEE传值乱码问题
- 【神线段树】hdu 6183
- 12大城市Java平均薪资对比,北上深杭月薪过万,广州最意外
- Twitter Snowflake 主键生成
- vi/vim多行注释和取消注释
- 线上服务内存OOM问题定位三板斧
- java方法传值的问题
- php-redis安装及使用
- jQuery toggle
- Akka(22): Stream:实时操控:动态管道连接-MergeHub,BroadcastHub and PartitionHub
- simplemde 使用+php获取html
- Corosync + Pacemaker 的高可用架构模型
- Test_Java_递归练习(斐波那契数列)
- httpmake_sock: could not bind to address
- 面向对象的思想的理解