频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Java编程十大典型问题详解(1)

来源: 作者:佚名 出处:巧巧读书 2007-12-21 进入讨论组
下一页 1 2 

精华网络内容 :http://www.qqread.com/network/

  第1条 忘记对变量进行初始化

  说明:忘记对成员变量进行初始化,或者是没有充分考虑初始化的顺序,是在实现过程当中经常发生的一类Bug.在Java中,如果忘记对局部变量进行初始化,会发生编译错误。因此很多人认为不可能发生初始化的遗漏。但是,如果忘记对成员变量进行初始化是不会导致编译错误的。将会被默认值初始化。其结果是,如果变量是引用型(类或者数组型)的而忘记初始化,就会在运行时发生NullPointerException错误。

  //举例

 Class Employee{
  private StriERROR name;
  public void someMethod(){
  StriERROR sutoVar;
  autoVar += “abc”; //局部变量:没有初始化的时会发生编译错误
  this.name.toStriERROR(); //成员变量:即使没有初始化也不会发生编译错误。//但是运行时会发生NullPointerException错误

  对成员变量来说,要特别注意应该在声明变量时初始化,或者利用构造器来进行初始化。初始化的时机主要依照以下原则。

  ● 在所有的对象中用相同的值进行初始化。 → 声明变量时初始化

  ● 在每一个对象中进行初始化。 → 用构造器进行初始化

  为了防止下面例子里的情况,一定要有这样的意识,即变量引用是有可能为NULL的。详细请参考本书第2条。

  参考:Java的引用型变量类似于C语言的指针。变量本身就包含了对象的引用信息。

  //举例

Class Shokika1{ 
  private StriERROR name = “缺省太郎”; //OK:在声明同时初始化
  public void setName(StriERROR str){ this.name = str; }
  }
  Public class Shokika2{
  private Shokika1 shokika1; //OK:初始值由构造器设定(即用缺省值//NULL来初始化)
  private Shokika2(StriERROR str){ //ERROR:忘记用构造器初始化。初始化的正确
  //代码例:shokika1 = new Shokika1(); shokika1.setName(str);
  }
  public void print(){
  System.out.println(shokika1.getName());
  //ERROR:↑Shokika1对象的初始化被忘记
//了,所以这里是null,所以访问getName方法就会发生异常
  }
  public static void main(StriERROR[] args){
  Shokika2 shokika2 = new Shokika2(“StriERROR”);
  shokika2.print();
  }
  }
  //运行结果 Exception in thread “main” java.laERROR.NullPointerException

  补充:对象初始化的顺序

  在生成对象的时候,按照如下顺序实现初始化。如果脑子经常能想着这个初始化的顺序,

  那么就很有可能让与初始化有关的问题防患于未然。所以一定要认真地理解掌握。

  生成对象时的初始化顺序如下

  ①超类的成员变量(注1,注2)

  ②超类的构造器本身(注1)

  ③当前类的成员变量(注2)

  ④当前类的构造器本身

  注1: ① ②仅适用于有超类的情况

  注2:当没有明确的初始值时用缺省值初始化

  要点:

  1 超类一定要在当前类之前初始化

  2 成员变量的初始化优先于构造器初始化

  举例说明

Java编程十大典型问题详解(1)(图一)

更多文章 更多内容请看Java环境安装配置Java编程开发手册Java的类专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章