标题:关于new对象的问题
只看楼主
sgliang1988
Rank: 1
来 自:西安
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-9-20
得分:0 
偶是群里的 ァSurenessξ  给你发短消息没回,本来想在QQ群里给你说呢,算了在这里我给你说吧。
第一个问题:
     是先执行字段,还是先执行构造方法,他们的顺序问题:
        如果你的字段里面都是只声明,并且没有进行显示赋值的话,基本数据类型系统会使用默认值,其他的必须显示的在构造里赋值,所以就不去执行字段的声明那块了,直接进构造函数了。相反如果你的字段里面声明了含有显示赋值的字段,他会先执行字段,去初始化字段的,具体你可以写一个程序测试下,一个给字段赋值,一个给字段不赋值,看下结果就明白了(用断点)。
第二个问题:
     //这里跟方法签名里的参数类型不同也可以吗?
        因为任何成员都是属于Object的,Object就相当于上帝,有了上帝才能制造事物,所以Object兼容任何类型。
    //这个for循环不明白,一直创建对象,又没有数组将值放在一起,如何可以输出这么多对象的值呢?
    首先你看程序声明变量时,声明了一个private Node first = null变量,一开始是为空的,当你开始压栈时,第一次压,First还是空的,而到了第二次first就存的是上一次(也就是第一次)压进来对象的引用,就等于后一次进来的对象字段里存的是前一次进来的应用(相当于地址),这样就可以把他们联系起来了,成一个链状。在打印的时候,每一次都要调用Posh()方法,在Posh方法里:
                else {
                object temp = first.Value;
                first = first.Next;
                count--;
                return temp;
            }
        第一次出栈调用的是最后一次压进来的,然后再把最后一次一进来字段里存的对象引用赋给变量first,当循环再转一次的时候,就操作的是给变量first里存的对象,然后在存入这次first存的对象的前一次,就这样循环,当达到最后一次时,所存的是NULL,所以就跳出了。

表达能力有限,不知你看的懂不?很晚了,我睡了,明天还上课呢,有问题明天QQ群里再讨论。

认真的对待每一天!
2008-04-10 00:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-208099-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.746241 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved