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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 赵崇友 于 2013-4-9 22:36 编辑
  1. class Bowl //Bowl类
  2. {
  3. Bowl(int marker)//带参数构造器
  4. {
  5. System.out.println("Bowl("+marker+")");
  6. }
  7. void f1(int marker)//成员方法
  8. {
  9. System.out.println("f1("+marker+")");
  10. }
  11. }
  12. //---------------------------------------
  13. class Table //Table类
  14. {
  15. static Bowl bowl1=new Bowl(1);//在table类中创建一个Bowl对象引用bowl1
  16. Table() //无参数构造器
  17. {
  18. System.out.println("Table()");
  19. bowl2.f1(1); //对象引用Bwol中的f1()方法
  20. }
  21. void f2(int marker)//成员方法
  22. {
  23. System.out.println("f2("+marker+")");
  24. }
  25. static Bowl bowl2=new Bowl(2);//创建Bowl对象引用bowl2
  26. }
  27. //--------------------------------
  28. class Cupboard //Cupboard类
  29. {
  30. Bowl bowl3=new Bowl(3);//创建一个Bowl对象引用bowl3
  31. static Bowl bowl4=new Bowl(4);//创建一个Bowl对象引用bowl4
  32. Cupboard() //构造器
  33. {
  34. System.out.println("Cupboard()");
  35. bowl4.f1(2);//对象调用f1()方法
  36. }
  37. void f3(int marker)//成员方法
  38. {
  39. System.out.println("f3("+marker+")");
  40. }
  41. static Bowl bowl5=new Bowl(5);//);//创建一个Bowl对象引用bowl5
  42. }
  43. //----------------------------------------
  44. public class Practice09
  45. {
  46. public static void main(String[] args)//主方法
  47. {
  48. System.out.println("Creating new Cupboard() in main");//输出语句
  49. new Cupboard();//new一个Cupboard对象
  50. System.out.println("Creating new Cupboard() in main");//输出语句
  51. new Cupboard();
  52. table.f2(1);//对象调用Table中f2()方法
  53. cupboard.f3(1);//对象调用Cupboard中的f3()方法
  54. }
  55. static Table table=new Table();//);//创建一个Table对象引用table
  56. static Cupboard cupboard=new Cupboard();//创建一个Cupboard对象引用cupboard
  57. }
  58. //以下是运行的结果:
  59. /*output:
  60. Bowl(1)
  61. Bowl(2)
  62. Table()
  63. f1(1)
  64. Bowl(4)
  65. Bowl(5)
  66. Bowl(3)
  67. Cupboard()
  68. f1(2)
  69. Creating new Cupboard() in m
  70. Bowl(3)
  71. Cupboard()
  72. f1(2)
  73. Creating new Cupboard() in m
  74. Bowl(3)
  75. Cupboard()
  76. f1(2)
  77. f2(1)
  78. f3(1)
  79. */
复制代码

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

7 个回复

正序浏览
黄玉昆 发表于 2013-4-9 20:22
建议你将代码插入到代码框中,谢谢
如果,不知道怎么操作,请看帖子:
http://bbs.itheima.com/thread-42 ...

嗯嗯,知道了!!之前没怎么发过贴
回复 使用道具 举报
我看是想问静态成员加载的问题吧,我看的晕晕的。。。
看你的结果我来说一下啊,
首先,主函数类加载,这个没啥疑问吧?
类加载要先加载静态成员,然后再加载去运行主函数的,按照你的代码顺序1.实例化table:static Table table=new Table();,加载Table类同样先加载静态,
static Bowl bowl1=new Bowl(1);static Bowl bowl2=new Bowl(2);然后构造函数,这样就先出现了
Bowl(1)
Bowl(2)
Table()
f1(1)
同样的static Cupboard cupboard=new Cupboard();/
的结果是
Bowl(4)
Bowl(5)
Bowl(3)
Cupboard()
f1(2)
然后轮到主函数运行:注意静态成员只随着类的加载而加载一次
于是new Cupboard();的结果就是
Bowl(3)
Cupboard()
f1(2)
西边的依旧也同样。
整个过程没发现什么问题啊??

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
赵崇友 + 3
田磊阳 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 胡滨 于 2013-4-9 21:16 编辑
  1. <div class="blockcode"><blockquote>
  2. <blockquote>
复制代码
  1. class Bowl                                                                                         // Bowl类
  2. {
  3.         Bowl(int marker)                                                                 // 带参数构造器
  4.         {
  5.                 System.out.println("Bowl(" + marker + ")");
  6.         }

  7.         void f1(int marker)                                                                // 成员方法
  8.         {
  9.                 System.out.println("f1(" + marker + ")");
  10.         }
  11. }

  12. // ---------------------------------------

  13. class Table                                                                                 // Table类
  14. {
  15.         static Bowl bowl1 = new Bowl(1);                            // 在table类中创建一个Bowl对象引用bowl1

  16.         Table()                                                                                    // 无参数构造器
  17.         {
  18.                 System.out.println("Table()");
  19.                 bowl2.f1(1);                                                                 // 对象引用Bowl中的f1()方法
  20.         }

  21.         void f2(int marker)                                                         // 成员方法
  22.         {
  23.                 System.out.println("f2(" + marker + ")");
  24.         }

  25.         static Bowl bowl2 = new Bowl(2);                                 // 创建Bowl对象引用bowl2
  26. }

  27. // --------------------------------

  28. class Cupboard                                                                                 // Cupboard类
  29. {
  30.         Bowl bowl3 = new Bowl(3);                                                 // 创建一个Bowl对象引用bowl3
  31.         static Bowl bowl4 = new Bowl(4);                                 // 创建一个Bowl对象引用bowl4

  32.         Cupboard()                                                                                 // 构造器
  33.         {
  34.                 System.out.println("Cupboard()");
  35.                 bowl4.f1(2);                                                                 // 对象调用f1()方法
  36.         }

  37.         void f3(int marker)                                                         // 成员方法
  38.         {
  39.                 System.out.println("f3(" + marker + ")");
  40.         }

  41.         static Bowl bowl5 = new Bowl(5);                                 // 创建一个Bowl对象引用bowl5
  42. }

  43. // ----------------------------------------
  44. public class Practice09 {
  45.         public static void main(String[] args)                                           // 主方法
  46.         {
  47.                 System.out.println("Creating new Cupboard() in main");// 输出语句
  48.                 new Cupboard();                                                                           // new一个Cupboard对象
  49.                 System.out.println("Creating new Cupboard() in main");// 输出语句
  50.                 new Cupboard();
  51.                 table.f2(1);                                                                                   // 对象调用Table中f2()方法
  52.                 cupboard.f3(1);                                                                           // 对象调用Cupboard中的f3()方法
  53.         }

  54.         static Table table = new Table();                                                  // 创建一个Table对象引用table
  55.         static Cupboard cupboard = new Cupboard();                                  // 创建一个Cupboard对象引用cupboard
  56. }
复制代码

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
赵崇友 + 3
田磊阳 + 1

查看全部评分

回复 使用道具 举报
赵崇友 发表于 2013-4-9 18:24
这还要注释啊!好吧……

建议你将代码插入到代码框中,谢谢
如果,不知道怎么操作,请看帖子:
http://bbs.itheima.com/thread-42978-1-1.html
回复 使用道具 举报
曹德君 发表于 2013-4-9 17:03
什么注释都没有。。。。。。。。。写程序记得写注释。郁闷半天没懂。求高手解释。 ...

这还要注释啊!好吧……
回复 使用道具 举报
我去  看的我眼花缭乱。。。。。
回复 使用道具 举报
本帖最后由 曹德君 于 2013-4-9 17:25 编辑

什么注释都没有。。。。。。。。。写程序记得写注释。郁闷半天没懂。求高手解释。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马