爱问知识人 爱问教育 医院库

C#概念性的问题 【求助】

首页

C#概念性的问题 【求助】

在一个类的方法中
实例化一个自己类型的对象
怎么理解
class A
    {

        public void a() 
        {
            A a = new A();
            a.show();
        }
        public void show()
        {
            Console.Write("A");
        }
    }


怎么理解?


A a = new A();

A a  a是A的引用
new A() m指向A类

A类都没有定义完 也就是说在托管堆里面 系统还没有为 A分配空间

这个时候我们定义A类型的引用a 然后系统会查找A类型是否存在
问题是根本找不到 因为他还没有被定义

后面就更不理解了 A类都没有定义完 托管堆中怎么可能分配空间列??

更别谈 要a指向 A类


想不通啊

提交回答
好评回答
  • 2010-05-16 05:38:07
    (前5的回答省略了)
    6、
    A类对象的生成。
    第一次生成的对象是用下面的方法吗?
    public void a() 
    { 
    A a = new A(); 
    a.show(); 
    } 
    回答是否定的。
    其实每次都不是。
    每次都是用的类的构造函数。
    在这里,构造函数是缺省的。
    缺省时其构造函数被自动生成(默认)。
    构造函数执行时,开辟内存空间和初始化。
    执行完了时,一个实例对象完成。
    所以在a()这个方法中写A a = new A(); 是没问题的,
    但是在构造函数里写的话执行时就会报错(编译也没问题)。
    它是个无限循环。
    那个就不行了。
    不信你可以试一试。 
    

    n***

    2010-05-16 05:38:07

类似问题

换一换
  • 程序设计 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):