`

传值传引用,老问题了

    博客分类:
  • 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
分享到:
评论

相关推荐

    子窗口传值到父窗口.rar

    这个过程就称为“子窗口传值到父窗口”。在JavaScript中,我们可以利用多种方法实现这一功能。以下是一些常用的技术和步骤: 1. **使用window.opener属性**: - 子窗口可以通过`window.opener`属性访问父窗口的...

    摩托罗拉C++面试题

    如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗? (1) 引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在...

    Python_Perl_PHP_Java Script面向对象支持的比较

    #### 六、传值与传引用 在函数调用过程中,参数传递的方式也会影响程序的行为: - **Perl**: - Perl总是按引用传递参数。 - 更多详情请参考:...

    JVM调优总结 JVM调优总结

    这种机制下,Java看似存在“传引用”的现象,实际上是因为传递的对象引用在方法内部被解析为指向堆内存中的对象。因此,对于引用类型,虽然传递的是引用值,但可以通过该引用修改堆内存中的对象状态。 #### 五、JVM...

    腾讯2016校园招聘 研发工程师笔试题(1).pdf

    其他选项要么是传值(Func(a)),要么是传指针(Func(&a)、Func(*a)),要么是先取地址再传引用(Func(&(*a))),这些都不符合题目要求。 3. 概率论:甲乙射箭的问题是一个概率问题。因为甲射了101箭,乙射了100箭...

    javaScrip基础代码

    参数传递可以是传值或传引用,函数可以有返回值。 6. **数组** JavaScript中的数组使用方括号`[]`表示,可以存储不同类型的元素。`push`, `pop`, `shift`, `unshift`, `slice`, `splice` 等方法用于操作数组。 7....

    python面试题

    在Python中,函数参数的传递遵循“传值”而非“传引用”的原则。当传递不可变数据类型(如整数、字符串等)时,实际上是将该数据类型的值复制一份传递给函数;而对于可变数据类型(如列表、字典等),则是将该对象的...

Global site tag (gtag.js) - Google Analytics