A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 覃俊瑞 黑马帝   /  2011-8-11 01:01  /  3116 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是代码摘字《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 编辑 ]

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2 等会可以来教室自习

查看全部评分

5 个回复

正序浏览
黑马网友  发表于 2011-8-19 10:35:34
报纸
那位大哥,大姐给我发一份web开发视频的PPT和源码,万分感谢    这是我的邮箱[email]847805430@qq.com[/email]
回复 使用道具 举报
黑马网友  发表于 2011-8-19 10:34:08
板凳
那位大哥,大姐给我发一份web开发视频的PPT和源码,万分感谢
回复 使用道具 举报
黑马网友  发表于 2011-8-19 02:23:07
藤椅

回复

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-14 00:16:54
沙发
我只知道对象在首次进行初始化时,先是初始化父类的静态变量,静态方法,然后到子类的。最后再初始化父类的其他东西,再到子类的。据我了解,如果没有多少项目经验,think in java这本书只能了解个片面的。csdn有不少人说,这本书在工作的时候仍然需要翻五遍以上。我才初学,所以只是看core java这些简单点的,数据结构也在看,不过进展很慢。
回复 使用道具 举报
黑马网友  发表于 2011-8-11 09:08:50
楼主

回复 藤椅 的帖子

多谢提醒,发帖的时候没注意,现在把代码整理好了。有兴趣的就做一下。先不用工具做一次,再用工具做一次。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马