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

© JJJD 中级黑马   /  2015-6-28 23:19  /  301 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看到这样一个代码找错题,和大家分享一下:代码一:
  1. class Something {
  2.     int i;
  3.     public void doSomething() {
  4.         System.out.println("i = " + i);
  5.     }
  6. }
复制代码
代码二:
  1. class Something {
  2.     final int i;
  3.     public void doSomething() {
  4.         System.out.println("i = " + i);
  5.     }
  6. }
复制代码
这两个代码运行的结果和原因:
代码一:正确
输出“i=0”,因为int i是成员变量,它有初始化值为0
代码二:错误
final int i是个final修饰的成员变量,final修饰的成员变量没有初始化值,必须被赋予一个明确的值。可以修改为“final int i=0”

5 个回复

倒序浏览
受教了,谢谢
回复 使用道具 举报
恩恩 不错:handshake
回复 使用道具 举报
第二题也可以直接加一句  Something(int i){this.i=i;}  
回复 使用道具 举报
这个还真没注意过,受教了~~
回复 使用道具 举报
知道了, 谢谢楼主的分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马