一个关于匿名内部类的问题

a395885670 2012-03-22 07:12:53

package com.gmx;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
final int count = 0;

new Thread(){

@Override
public void run() {
count++;
}

}.start();
}

}




用什么办法能让上面的代码实现 count++ ,匿名内部类中只能使用final类型的数据.
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
a395885670 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 preferme 的回复:]

成员变量 在 以成员变量形式生成的匿名内部类中可见。
方法中的变量,在方法的匿名内部类中不可见;
方法中的常量(包括参数常量),在方法的匿名内部类中可见。
这些都是Java的语法规则。习惯就好。
[/Quote]
非常感谢
冰思雨 2012-03-22
  • 打赏
  • 举报
回复
成员变量 在 以成员变量形式生成的匿名内部类中可见。
方法中的变量,在方法的匿名内部类中不可见;
方法中的常量(包括参数常量),在方法的匿名内部类中可见。
这些都是Java的语法规则。习惯就好。
冰思雨 2012-03-22
  • 打赏
  • 举报
回复
或者叫 变量的可见性。
冰思雨 2012-03-22
  • 打赏
  • 举报
回复
变量的作用域。
a395885670 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 preferme 的回复:]

Java code

public class Test{

int count = 0;
Thead t = new Thead(){
public void run(){
count++;
}
};

public void doTest(){
t.start();
}
public static void main(String [] args ){
T……
[/Quote]

分给您了 能给讲讲为什么吗 ?
冰思雨 2012-03-22
  • 打赏
  • 举报
回复

public class Test{

int count = 0;
Thead t = new Thead(){
public void run(){
count++;
}
};

public void doTest(){
t.start();
}
public static void main(String [] args ){
Test test = new Test();
test.doTest();
}
}

62,615

社区成员

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

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