zoukankan      html  css  js  c++  java
  • dui xiang yin yong

    public class Test {
    private String name;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }

    public Test() {
    }

    public void call(Test t1,Test t2) {
    System.out.println("t1地址1="+t1);
    Test t3 = new Test();
    t1.setName("aaa");
    t2.setName("bbb");
    t3.setName("ccc");
    System.out.println(t1.getName());//aaa
    System.out.println(t2.getName());//bbb
    t1=t2;
    System.out.println(t1.getName());//bbb
    t1=t3;
    System.out.println(t1.getName());//ccc
    System.out.println(t3.getName());//ccc
    t3.setName("eeee");
    System.out.println("t1地址2="+t1);
    }

    public static void main(String[] arg) {
    Test t1 = new Test();
    Test t2 = new Test();
    System.out.println("t1地址0="+t1);
    Test t4=new Test();
    t4.call(t1,t2);
    System.out.println("t1地址3="+t1);
    System.out.println("t1=" + t1.getName());//aaa???
    System.out.println("t2=" + t2.getName());//bbb????
    }
    /////////////////////////////////理解,以前理解的很好,现在又生疏了。再次重新理解。

    在对象作为参数的时候,传入的不是对象,也不是对象的地址,而是对象地址的引用(拷贝了一份地址指针)。
    所以在以对象为参数的方法中对象(赋值)=的时候,改变的只是地址引用的指针,而真正的对象的地址没有改变。


  • 相关阅读:
    洛谷P1033 自由落体 题解
    尴尬
    UVA11988 【Broken Keyboard (a.k.a. Beiju Text)】:题解
    UVA101 The Blocks Problem 题解
    TCP的粘包和拆包问题及解决办法(C#)
    MIPS学习笔记(一)
    MySQL基础(一)
    博客园的标签怎么变了两下???
    nextInt()和nextLine()连用报错
    C++代码雨
  • 原文地址:https://www.cnblogs.com/cmdl/p/3094378.html
Copyright © 2011-2022 走看看