Tekkaman

导航

 

哪些情况下变量不会初始化

  将变量作为类成员使用,就要特别注意由Java 分配的默认值。这样做可保证主类型的成员变量肯定得到了初始化(C++不具备这一功能),可有效遏止多种相关的编程错误。然而,这种保证却并不适用于“局部”变量——那些变量并非一个类的字段。所以,假若在一个函数定义中写入下述代码:

  int x;

  那么x 会得到一些随机值(这与C 和C++是一样的),不会自动初始化成零。

  我们责任是在正式使用x 前分配一个适当的值。如果忘记,就会得到一条编译期错误,告诉我们变量可能尚未初始化。这种处理正是Java优于C++的表现之一。许多C++编译器会对变量未初始化发出警告,但在Java 里却是错误。

posted on 2011-05-26 18:28  Tekkaman  阅读(898)  评论(0编辑  收藏  举报