`

传值传引用,老问题了

    博客分类:
  • java
 
阅读更多

今天犯了一个错误:

例如:

public class Demo {
	public static void main(String[] args) {
		Demo d = new Demo();
		A a = null;//1
		B b = d.new B(a);//2
		a = d.new A();//3
		System.out.println(b.getA());//4
	}

	class A {
	}

	class B {
		private A a;

		/**
		 * 
		 */
		public B(A a) {
			this.a = a;
		}

		public A getA() {
			return a;
		}

		public void setA(A a) {
			this.a = a;
		}

	}
}

 

 我想打印的是类似对象package.A@239dsf324523的东西

 结果是null

 当时没细想,以为a = d.new A();//3 给a赋值了,因为是传的引用值,B b = d.new B(a);//2中的a此时就不为null,

 虽然对传值传引用有深刻的理解,但是,在使用的时候,却频频出错!!哎,重重的给了我一巴掌

 

 

 

0
0
分享到:
评论

相关推荐

    JAVA中传值与引用问题

    本文将深入探讨Java中的传值与传引用问题,并通过具体的例子来解析其中的原理。 #### 二、基础知识回顾 在Java中,所有的数据类型可以分为两大类:基本类型(如int, double等)和引用类型(如Object, String等)。...

    java中传值与传引用

    在Java编程语言中,函数调用时的参数传递方式有两种:传值(Passing by Value)和传引用(Passing by Reference)。虽然Java官方文档中并未明确指出有传引用这一概念,但在实际操作中,Java的行为类似于传引用,尤其...

    赋值传值,引用传值,指针传值的区别

    构造函数,借助构造函数 解释 【赋值传值】,【引用传值】,【指针传值】

    java中传值还是传引用的的认识

    "java中传值还是传引用的认识" Java 中的参数传递是值传递还是引用传递?这是一个经常引发讨论的问题。在 Java 中,参数传递是按值传递的,也就是说,传递给方法的参数是一个副本,而不是原始值本身。 当一个对象...

    引用类型传值方法

    本篇文章将详细探讨引用类型的传值方式。 首先,理解引用类型的概念至关重要。引用类型包括类(classes)、接口(interfaces)、数组以及委托(delegates),它们在内存中的存储方式与值类型截然不同。对于引用类型...

    labview主VI和子VI的传值、全局变量传值、引用传值

    引用传值通过“创建引用”函数实现,子VI则使用“引用事件结构”来处理引用传来的消息。这种方式虽然强大,但也需要更高的编程技巧和理解,因为不当使用可能会导致内存泄漏或死锁等问题。 在实际应用中,通常会根据...

    C++传值调用与引用调用区别实例代码

    当一个函数被调用时,可以通过不同的方式传递参数,其中最常见的是传值(call by value)和传引用(call by reference)两种方法。这两种方式在内存管理、性能影响以及数据修改能力上有着显著的不同。 #### 1. 传值调用...

    Java传值还是引用

    根据标题和描述,我们将深入探讨Java中传值与引用的区别,以及它们在实际编程中的应用。 首先,Java是一种“总是按值传递”的语言。这意味着无论是基本类型还是引用类型,当作为参数传递时,都会有一个副本被创建并...

    JAVA传值与传引用[整理].pdf

    JAVA传值与传引用[整理].pdf

    浅析Java方法传值和传引用问题

    本篇文章将深入探讨Java中的方法传值和传引用问题。 首先,让我们理解什么是传值。在Java中,基本数据类型(如int, double, char等)和字符串(String类)的参数传递方式被称为传值。这意味着当一个变量作为参数...

    php传值和传引用的区别点总结

    在PHP编程中,理解变量的传值和传引用是非常重要的概念,它们决定了函数内部操作对原始变量的影响。下面我们将详细探讨这两个概念的区别、工作原理以及优缺点。 **1. PHP传值** 当一个变量作为参数传递给函数时,...

    Java是传值还是传址引用

    ### Java是传值还是传址引用 #### 一、简单类型是按值传递的 Java在处理简单数据类型(如int、boolean等)时采用的是按值传递的方式。这意味着当你将一个简单类型的值作为参数传递给一个方法时,实际上传递的是这...

    Java SE程序 界面传值问题

    Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE...

    android activityIntent 传值 传对象

    1. **基本数据类型的传值** Intent提供了putExtra()方法来传递基本数据类型,如字符串、整型、浮点型等。例如,要在Intent中传递一个字符串,可以这样操作: ```java Intent intent = new Intent(this, ...

    python基础入门教程:传参是传值还是传引用.pdf

    Python中的参数传递并非简单的"传值"或"传引用",而是一种特殊的机制,通常被称为"传对象引用"。这意味着,当你将一个变量作为参数传递给函数时,实际上是传递了这个变量所引用的对象的引用,而不是对象的副本。 ...

    Java中的传值与传引用实现过程解析

    "Java中的传值与传引用实现过程解析" Java中的传值与传引用是Java编程语言中的一种基础概念,它们是Java函数中参数传递的两种方式。 Java中的传值是指函数参数的值被复制到函数内部,在函数内部对参数的修改不会...

    vue prop属性传值与传引用示例

    vue组件在prop里根据type决定传值还是传引用。 简要如下: 传值:String、Number、Boolean 传引用:Array、Object 若想将数组或对象类型也以值形式传递怎么办呢?如下方式可以实现: // component-A 引用component-...

    java的传值与传值后的改变

    理解Java中的传值与传引用对于编写正确且预期的行为代码至关重要。在编写函数时,应清楚地知道参数如何被传递,以及这将如何影响函数的可读性和行为。在实际编程中,合理运用这些知识能帮助避免许多常见的错误和困惑...

Global site tag (gtag.js) - Google Analytics