`
wwty
  • 浏览: 544068 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

java当中的参数传递

阅读更多

 

在java中:

基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的

在Java中对象作为参数传递时,传递的是引用的拷贝,既不是引用本身,更不是对象。

 

总结: 

1:对于值类型的参数来说,传递的是值的拷贝. 

2:对于引用类型的参数来说,传递的是引用本身的拷贝. 

所以关键要看你如何理解传值中的这个“值”了。

 

 

实例:

 

public class ReferTest {
	public static void call(Test t) {  
		     Test t2 = new Test(); 
		     t = t2 ;
		     
		     t2.setName("cba");
		     t.setName("abc"); 
		     
		     System.out.println(t.getName());
		     System.out.println(t2.getName());
	}  
	
	public static void test(int i){
		i+=1;
		System.out.println(i);
	}
	
	public static void main(String[] arg){
		/**引用传递测试*/
		Test obj = new Test();
		call (obj);
		System.out.println("obj"+obj.getName());
		
		/**基本类型传递*/
		int z = 0;
		test(z);
		System.out.println(z);
	}  
}

class Test{
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

 

 打印结果:

 

 

abc
abc
objnull
1
0

 

 

分析:

1、当调用call (obj);方法时,打印:abc,abc是可以理解的,不好理解的是System.out.println("obj"+obj.getName());

打印出来的objnull,obj明明已经作为参数传递进去了,为什么会打印一个null呢?

对于引用类型的参数来说,传递的是引用本身的拷贝.

也就是说传递给call方法的参数是Test类的一个实例的引用的拷贝,这个拷贝刚进到call方法当中时,确实也指向Test的一个实例对象:Test obj = new Test();

但是下面一句代码:t = t2 ;将这个指向改变了,它已经不再指向obj这个对象,而是Test t2 = new Test(); 这个对象。

这样就没有了针对对象Test obj = new Test();的任何操作,所以当打印System.out.println("obj"+obj.getName());

结果为objnull

 

2、从1,0的打印结果来看,在结合上面的理论:

基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的

这样就不用什么解释,已经解释的很好了

 

 

分享到:
评论

相关推荐

    11.java参数传递.zip

    11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java...

    13.java参数传递之引用传递.zip

    13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递....

    58.java参数传递机制.zip

    58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递...

    java方法的参数传递其二.docx

    Java 方法参数传递之引用类型 Java 方法参数传递是 Java 编程语言中的一种基本机制,在方法调用时将参数传递给方法体内的变量,但是在传递过程中,参数的类型会对传递结果产生影响。在本文中,我们将讨论 Java 方法...

    JAVA反射参数传递概略

    这篇博客文章“JAVA反射参数传递概略”将深入探讨如何使用反射来处理方法参数,尤其是涉及到参数传递的细节。 首先,让我们理解什么是参数传递。在Java中,有两种基本的参数传递方式:值传递和引用传递。值传递是将...

    Java参数传递PPT

    Java参数传递机制是编程中的重要概念,尤其是在Java中,它对于理解如何在方法间操作数据至关重要。本PPT深入探讨了这一主题,旨在帮助学习者彻底理解Java中的参数传递方式。 首先,我们要回顾面向对象的基本概念。...

    Java参数传递的经典示例

    Java参数传递机制是编程中非常重要的概念,它涉及到基本类型和引用类型的差异。在Java中,参数传递主要有两种方式:值传递(Value Passing)和引用传递(Reference Passing)。虽然Java官方文档并未明确提及引用传递...

    62.java引用类型的参数传递.zip

    62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递....

    59.java基本类型的参数传递.zip

    59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递....

    java传递参数的方法

    java传递参数的方法 很的东西 大家下载学习一下

    java参数传递

    这里详细的说明了,java参数传递的过程,引用传递,值传递

    java参数的传递与返回值

    #### 一、Java参数传递的基本概念 在Java中,方法(或称为函数)可以通过参数来接收外部的数据,并且能够返回处理后的结果。参数的传递方式主要有两种:值传递(Pass-by-value)和引用传递(Pass-by-reference)。...

    Jni中C++和Java的参数传递

    在涉及到C++和Java之间的参数传递时,有一些特定的规则和技巧需要注意。 首先,我们要理解Java对象和C++数据类型的映射关系。在JNI中,Java的基本数据类型如`boolean`, `byte`, `char`, `short`, `int`, `float`, `...

    java 参数传递

    Java 参数传递机制详解 Java 中的参数传递机制是一个经久不息的讨论话题,究竟是“传值”还是“传引用”,双方各执一词,互不相让。本文将通过详细的分析和实例,揭开 Java 参数传递机制的奥秘。 基本类型作为参数...

    Jni中C和Java的参数传递.doc

    总结一下,JNI 参数传递的关键点包括: 1. **类型映射**:Java 和 C++ 的数据类型不同,需要使用 JNI 提供的类型映射,如 `jint`、`jstring` 等。 2. **字段访问**:使用 JNI 的 `GetFieldID` 和 `GetObjectField`...

    java参数传递学习demo

    java的参数传递对比,体现了值传递和引用传递的区别,是我在java入门是写的学习demo

    利用ASP实现JAVA动态参数的传递

    ### 利用ASP实现JAVA动态参数的传递:深入解析与实践 #### 引言 ...通过深入理解ASP的功能及其与Java参数传递的机制,开发者能够构建出更加智能、响应迅速的Web服务,满足日益增长的互联网需求。

    Java的引用和函数参数传递

    ### Java的引用与函数参数传递详解 #### 一、Java中的引用基础 在Java中,对象的引用扮演着类似于其他编程语言(如C/C++)中指针的角色,但是Java的引用比传统的指针更加安全且易于管理。这是因为Java的设计者们...

    Java方法参数传递机制原理解析

    Java方法参数传递机制原理解析 Java方法参数传递机制是指在Java中,方法调用时传递参数的机制。参数传递机制可以分为两种:值传递和引用传递。 值传递是指基本数据类型的参数传递,值传递的体现是数值的传递。在值...

    Java数组传递及可变参数操作实例详解

    当把数组作为参数传递给方法时,传递的实际上就是数组对象的引用。 Java 可变参数是指在方法中可以传递同类型的可变参数,JDK 1.5 开始支持这种特性。可变参数可以使得方法更加灵活、方便使用。可变参数的使用规则...

Global site tag (gtag.js) - Google Analytics