黑马程序员技术交流社区

标题: 一个类的执行过程,你懂么? [打印本页]

作者: 覃俊瑞    时间: 2011-8-11 01:01
标题: 一个类的执行过程,你懂么?
下面是代码摘字《Thinking In Java》,如果我没看过这本书,我也不懂。

问题:1、你在不用工具运行下面的代码,你可以推测结果么?请如实回答。
      2、 用工具运行得出结果,能根据结果解说缘由吗?

这是一个问题,也是一个调查,请如实回答,请勿搜索百度,那不是你我需要的答案。
只有清晰的知道自己的短处,才能补短,才知道自己应该着力的地方。
[code=java]package day10.one;

class Bowl {
        Bowl(int marker) {
                System.out.println("Bowl(" + marker + ")");
        }

        void f(int marker) {
                System.out.println("f(" + marker + ")");
        }
}

class Table {
        static Bowl b1 = new Bowl(1);

        Table() {
                System.out.println("Table()");
                b2.f(1);
        }

        void f2(int marker) {
                System.out.println("f2(" + marker + ")");
        }

        static Bowl b2 = new Bowl(2);
}

class Cupboard {
        Bowl b3 = new Bowl(3);
        static Bowl b4 = new Bowl(4);

        Cupboard() {
                System.out.println("Cupboard()");
                b4.f(2);
        }

        void f3(int marker) {
                System.out.println("f3(" + marker + ")");
        }

        static Bowl b5 = new Bowl(5);
}

public class StaticInitialization {
        public static void main(String[] args) {
                System.out.println("Creating new Cupboard() in main");
                new Cupboard();
                System.out.println("Creating new Cupboard() in main");
                new Cupboard();
                t2.f2(1);
                t3.f3(1);
        }

        static Table t2 = new Table();
        static Cupboard t3 = new Cupboard();
}[/code]:L 多谢zhuani21童鞋的提醒,copy时的出问题了(拷少了),代码也没格式化。现在修正了。
[ 本帖最后由 覃俊瑞 于 2011-08-11  09:02 编辑 ]
作者: 匿名    时间: 2011-8-11 09:08
标题: 回复 藤椅 的帖子
多谢提醒,发帖的时候没注意,现在把代码整理好了。有兴趣的就做一下。先不用工具做一次,再用工具做一次。
作者: 匿名    时间: 2011-8-14 00:16
我只知道对象在首次进行初始化时,先是初始化父类的静态变量,静态方法,然后到子类的。最后再初始化父类的其他东西,再到子类的。据我了解,如果没有多少项目经验,think in java这本书只能了解个片面的。csdn有不少人说,这本书在工作的时候仍然需要翻五遍以上。我才初学,所以只是看core java这些简单点的,数据结构也在看,不过进展很慢。
作者: 匿名    时间: 2011-8-19 02:23
标题: 回复
Creating new Cupboard() in main
Cupboard()
Bowl(4)
f(2)
Bowl(5)
Creating new Cupboard() in main
Cupboard()
Bowl(4)
f(2)
Bowl(5)
Table()
Bowl(1)
f(1)
Table()
Cupboard()
f3(1)
个人认为结果就是这个吧。。。
作者: 匿名    时间: 2011-8-19 10:34
那位大哥,大姐给我发一份web开发视频的PPT和源码,万分感谢
作者: 匿名    时间: 2011-8-19 10:35
那位大哥,大姐给我发一份web开发视频的PPT和源码,万分感谢    这是我的邮箱[email]847805430@qq.com[/email]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2