若天明 发表于 2015-1-18 11:16:16

发布一篇诊断Java代码: 一连初始化器毛病形式

但是对于JAVA技术类的学习,我觉得大课堂反而会影响自身独立思考的过程,因为上课的时候,老师讲课的速度很快为了不遗漏要点,通常会仔细的听,
您常常会看到代码不是仅仅经由过程挪用机关函数对类举行初始化,它还经由过程一些紧接着的意在设置各个域的举措对类举行初始化。不幸的是,如许紧接着的举措是毛病的多发地带,会带来一连初始化(run-oninitialization)范例的毛病。
一连初始化
因为各类缘故原由(多半是糟的),您常常会看到如许的类界说,个中的类机关函数其实不带有充足的参数来得当地初始化类的一切域。如许的机关函数请求客户机类用几个步骤来对实例举行初始化(设置未被初始化的域的值),而不是用一个机关函数挪用就好了。以如许的体例初始化实例是一个易于堕落的历程,我把它称为一连初始化。这个历程发生的各类毛病范例有类似的症状和医治办法,以是我们能够将它们一切回进一种称为一连初始化器毛病形式的形式。
比方,思索以下代码:
清单1.一个复杂的一连初始化
classRestrictedInt{
 publicIntegervalue;
 publicbooleancanTakeZero;

 publicRestrictedInt(boolean_canTakeZero){
  canTakeZero=_canTakeZero;
 }

 publicvoidsetValue(int_value)throwsCantTakeZeroException{
  if(_value==0){
   if(canTakeZero){
    value=newInteger(_value);
   }
   else{
    thrownewCantTakeZeroException(this);
   }
  }
  else{
   value=newInteger(_value);
  }
 }
}
classCantTakeZeroExceptionextendsException{

 publicRestrictedIntri;

 publicCantTakeZeroException(RestrictedInt_ri){
  super("RestrictedIntcanttakezero");
  ri=_ri;
 }
}
classClient{
 publicstaticvoidinitialize()throwsCantTakeZeroException{
  RestrictedIntri=newRestrictedInt(false);
  ri.setValue(0);
 }
}
<p>
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,

谁可相欹 发表于 2015-1-20 19:02:07

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

金色的骷髅 发表于 2015-1-24 15:45:53

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

因胸联盟 发表于 2015-2-1 06:01:31

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

只想知道 发表于 2015-2-4 22:09:11

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

蒙在股里 发表于 2015-2-8 15:30:17

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

活着的死人 发表于 2015-2-18 20:46:29

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

柔情似水 发表于 2015-2-25 08:48:21

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

乐观 发表于 2015-3-5 07:39:01

是一种突破用户端机器环境和CPU

小妖女 发表于 2015-3-12 00:21:51

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

若天明 发表于 2015-3-19 16:56:20

是一种突破用户端机器环境和CPU

飘灵儿 发表于 2015-3-29 03:43:18

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
页: [1]
查看完整版本: 发布一篇诊断Java代码: 一连初始化器毛病形式