zoukankan      html  css  js  c++  java
  • 对象之间的引用传递

    1.案例
    首先我们从一个案例开始   引入今天的知识。
     
    先创建一个类Person。
     
    public class Person
    {
           public string Name
           {
                set;
                get;
           }
           public string Age
           {
                set;
                get;
           }
          public void SayHi()
          {
               Console.WriteLine(this.Name+"        "+this.Age);
          }
    }
     
    //调用
    //这种写法叫对象初始化器,算是一个简化的写法。
      Person p1 =new Person()  {Age =18, Name = "Winter"};
      p1.SayHi();       //输出了:   Winter   18
      Person p2 = p1;
      p2.Name = "大傻子";
      P2.Age = 99;
      p1.SayHi();       //输出了:   大傻子   99
      给p2赋值,为什么会影响到p1呢?  这是因为对象间是引用传递的!
    —————————————————————————————————————
    2. 结论
    首先画一幅图来描述一下的过程。
     clipboard[4]
    1. 我们在new出来p1时,系统为我们在堆中开辟了一块内存。  //这个案例中,只new能再内存中开辟内存。
    //↓这也就是为什么说,对象之间是赋值引用。 
    2. Person p2 = p1; 这句话的时候,栈内存中的p2指向了 p1 new出来的堆内存中的区域。
    基本上要说的就是这一幅图。理解了就好。


     
     
     
     
     

  • 相关阅读:
    ajax专题
    luogu P1346 电车 最短路
    luogu P1462 通往奥格瑞玛的道路 最短路
    luogu P1328 生活大爆炸版石头剪刀布
    luogu P1315 联合权值 枚举
    luogu P1156 垃圾陷阱 背包问题
    luogu P1217 回文质数 枚举
    luogu P3650 滑雪课程设计 枚举
    luogu1209 修理牛棚 贪心
    luogu P1223 排队接水 贪心
  • 原文地址:https://www.cnblogs.com/mcad/p/4193166.html
Copyright © 2011-2022 走看看