获取构造函数的参数作为方法的变量

时间:2013-12-17 19:39:45

标签: java

class Param implements Runnable {
int c;

public Param(int a, int b){
    c = a+b;
}

public void run(){
    // System.out.println(a); // <<<<----What I'm going to do. it's impossible. 
}

 }

public class ParamTest {
public static void main(String args[]){
    Runnable r = new ThreadParam(10,20);
    new Thread(r).start();  

}   
} 

在上面的代码中,如何打印“a”的值?我的目标是,当我在main方法中调用Runnable r = new ThreadParam(10,20)时,我想打印“a”的值 - &gt; 10。这不可能吗?如果我将int a声明为run()方法,则“a”的结果为“0”。我想结果“10”。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

局部变量和参数仅存在于声明它们的函数内 您需要将其存储在类中的字段中,就像存储c一样。

答案 1 :(得分:2)

创建另一个实例变量以保存a值:

int a;

并在构造函数中将其复制下来:

this.a = a;

然后你可以用另一种方法访问它。