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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周志伟 黑马帝   /  2013-4-7 01:59  /  1920 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 周志伟 于 2013-4-7 20:57 编辑
  1. class StaticCode
  2. {
  3.         static
  4.         {
  5.                 System.out.println("a");
  6.         }
  7. }

  8. class StaticCodeDemo
  9. {
  10.         static
  11.         {
  12.                 System.out.println("b");
  13.         }
  14.         
  15.         public static void main(String[] args)
  16.         {
  17.                 new StaticCode();//这里为什么不是StaticCode s1 = new StaticCode();?????????????????
  18.                 new StaticCode();//这里为什么不是StaticCode s2 = new StaticCode();?????????????????
  19.                 System.out.println("over");
  20.         }
  21.         static
  22.         {
  23.                 System.out.println("c");
  24.         }

  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

14 个回复

倒序浏览
本帖最后由 周志伟 于 2013-4-7 02:13 编辑
  1. class StaticCode
  2. {
  3.         static
  4.         {
  5.                 System.out.println("a");
  6.         }
  7. }

  8. class StaticCodeDemo
  9. {
  10.         static
  11.         {
  12.                 System.out.println("b");
  13.         }
  14.         
  15.         public static void main(String[] args)
  16.         {
  17.                 StaticCode s = null;
  18.                  s = new StaticCode();//为什么不是:StaticCode s = new StaticCode();?????????????????????????????
  19.                                                   //                      s.show();?????????????????????????????

  20.                  StaticCode.show();
  21.         }
  22.         static
  23.         {
  24.                 System.out.println("c");
  25.         }

  26. }
复制代码
回复 使用道具 举报
new StaticCode();//这里为什么不是StaticCode s1 = new StaticCode();?????????????????

19.                new StaticCode();//这里为什么不是StaticCode s2 = new StaticCode();?????????????????


不知道你学到了 匿名对象没?》


此处创建的是StaticCode类的匿名对象。
匿名对象并不会一直存在。
当主函数对其的调用语句执行完毕之后,就被释放了。

具体请参看毕老师的 第五天05那个视频,讲解匿名对象。

回复 使用道具 举报
曹宇 发表于 2013-4-7 02:34
new StaticCode();//这里为什么不是StaticCode s1 = new StaticCode();?????????????????

19.             ...

好的,谢谢了,我看过了第5天的视频,只是,看来没有练习,做习题,掌握的不好啊,都忘记了。
回复 使用道具 举报
周志伟 发表于 2013-4-7 02:12

StaticCode s = null;

19.                 s = new StaticCode();//为什么不是:StaticCode s = new StaticCode();?????????????????????????????



此处有两点不同。
因为不知道具体的需求是什么,我也就只说说这两种创建对象的不同。

StaticCode s=new StaticCode();
此方法是直接创建了一个StaticCode类型的引用型变量,指向了新创建的StaticCode对象。

StaticCode s=null;
s=new StaticCode();
此处是先创建了一个StaticCode类型的引用型变量s  其值为空。就是没有任何的指向。
然后才创建了StaticCode的对象,将s的引用指向了这个对象。

根据问题的需求不同,创建的方式也不同,这个要看需求。没什么为什么一说,需求不同,方式不同。
只要理解这两种方式的意思,以后再使用的时候酌情选择就行了。
直接这样
StaticCode s=null;
s=new StaticCode();
应该是和第一种方式没有什么区别,且没有什么意义。
举个例子:
StaticCode s=null;
if(s==null)
{
    s=new StaticCode();
}
else
{
    干啥干啥的。
}

就是可能有某一种需求,是需要当前的指向为空,或者说没有对象的时候才去创建对象,如果有了对象的话,就不去创建对象,而去做别的某一些操作等等。

理解就好,以后会用到的!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
周志伟 发表于 2013-4-7 02:39
好的,谢谢了,我看过了第5天的视频,只是,看来没有练习,做习题,掌握的不好啊,都忘记了。 ...

恩,我也初学者,看到了13天。

建议如果你不赶某一期,时间充足的情况下,还是看完一天的视频,然后花时间去做做习题,没有习题,就将老师说的内容,自己去完成一下,加深记忆,孰能生巧。

编程这东西,初学的时候晕,只有多写代码,多出错误,才能得以提高。
出错误不是坏事,编译错误见多了,以后没什么编译错误能难倒你,这是经验的积累。
加油。

祝你成功。
回复 使用道具 举报
曹宇 发表于 2013-4-7 02:50
恩,我也初学者,看到了13天。

建议如果你不赶某一期,时间充足的情况下,还是看完一天的视频,然后花时 ...

好的,谢谢啦,我再认真仔细的看看你的回复,对了。你的QQ多少啊?我加你,方便以后交流。
回复 使用道具 举报
曹宇 发表于 2013-4-7 02:50
恩,我也初学者,看到了13天。

建议如果你不赶某一期,时间充足的情况下,还是看完一天的视频,然后花时 ...

我的QQ是:726367601
回复 使用道具 举报
周志伟 发表于 2013-4-7 03:16
我的QQ是:726367601

546276012

恩,大家互相交流
回复 使用道具 举报
还没学到这了,看来的加油啦!
回复 使用道具 举报
这就是一个匿名对象的调用
在这里,你只需使用一次调试程序
所以用匿名对象即可,后边你就会学到了
回复 使用道具 举报
这都可以....
回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
我手心里的宝 发表于 2013-4-7 08:32
这就是一个匿名对象的调用
在这里,你只需使用一次调试程序
所以用匿名对象即可,后边你就会学到了 ...

好的,知道了,再回去看看视频,消化一下。
回复 使用道具 举报
匿名对象的问题。
当匿名对象仅仅调用一次时候,就不需要再起名字。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马