zoukankan      html  css  js  c++  java
  • .天轰穿C# vs2010 04面向对象的编程之实例化类对象【原创】

    实例化就是创建对象的过程。

    使用new关键字可以建立类的一个实例,而我们这一句中小写的user 就是对象引用的名字。同理,我们还可以使用如下语法,实例化出

    更多的对象:

    User user = new User();

                User user_a = new User();

                User user_b;           //创建对象引用
                user_b = new User();   //
    创建对象

    这个前两句的意思是分别创建了useruser_a两个对象,第三和第四句是什么意思?

    对象与对象引用

    老田:这个问题我建议你再回去看下第二章关于引用类型的介绍。

    在第二章我们说到类是引用类型,而引用类型最大的特点是,申明变量其实只是创建了引用,而实例化的时候才真正开辟存储对象的内

    存空间。换句话说,只有实例化过后的对象才有存储内容的内存空间。对象引用可以理解成一串数字,它是内存地址。对象变量保存的仅仅

    是对象的一个引用,不是对象本身!这点是非常重要的!

    User  c;             //声明对象引用

    c = new User ();        //生成类的对象

    c = new User ();

    咱们进一步深入到栈和堆的概念中去。当我们程序执行User c,其实是在栈中分配了一块地址空间,内容为空;之后我们将c = new Use

    r
    () 此时在堆中分配了内存地址用于存放User的对象!同时把这个地址传入给栈中c的内容,但我要注意到c中只是存放对象的引用。在这里

    我们注意到,在调用第二个c = new User()的时候,这时实际上是在堆中重新开辟了一块空间,然后将地址返回到栈中。c将指向这个地址空

    间,而第一个c = new
    User()中由于没有其他指针来指向它,它的内存空间将被.NET垃圾回收系统所回收。


    本文章为天轰穿原创文章,转载请注明出处及作者。


  • 相关阅读:
    北航软院2012级C#期末考试部分考题解答
    题目1013:开门人和关门人(字符串处理)
    char * 与char []探究理解
    题目1017:还是畅通工程(最小生成树)
    最小生成树(Prim算法+Kruskal算法)
    题目1018:统计同成绩学生人数(hash简单应用)
    GoogLeNet InceptionV2/V3/V4
    Python库
    卷积为什么如此强大?一文全解深度学习中的卷积
    神经网络训练tricks
  • 原文地址:https://www.cnblogs.com/thcjp/p/2826289.html
Copyright © 2011-2022 走看看