一道关于继承和内部类的笔试题

snowboy8886 2009-10-25 10:28:27
我答的是7,刚才用Eclipse运行了下,运行结果是3,谁能给解释一下啊,谢谢

public class test1 {

static int i = 1;
static {
++i;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
increment (i,5);
display(i);
}

static void increment(int n , int m){
n+=m;
}

static void display(int n){
System.out.println(n);
}
static{
++i;
}
}
...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowboy8886 2009-10-25
  • 打赏
  • 举报
回复
十分感谢
xzx258 2009-10-25
  • 打赏
  • 举报
回复
结果是3~~~~~
只有2个static里的++i起作用了
其他方法里的改变的只是形参的值
「已注销」 2009-10-25
  • 打赏
  • 举报
回复
i 初始值 1
2个静态初始化执行完之后 i=3

在类被初始化完成后 i=3
而你的函数调用里,只是把i的值的拷贝传进去,改变的是形参的值,没有影响到 i 的值
因此打印出来还是上面2步执行玩之后的3

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧