2012-01-06 39 views
0

我有一个有四个构造函数的类。当我尝试编译主类时,在代码片段的最后一行出现错误“无法找到符号”。但是这个类的每个构造函数都定义了value,所以我不知道发生了什么。我错过了什么?为什么我编写这门课时看到“找不到符号”?

import java.math.BigDecimal; 

public class PowerTwo { 

    public PowerTwo(int n){ 
     final BigDecimal value = new BigDecimal(n); 
    } 

    public PowerTwo(long n){ 
     final BigDecimal value = new BigDecimal(n); 
    } 

    public PowerTwo(BigDecimal n){ 
     final BigDecimal value = n; 
    } 

    public PowerTwo(String n){ 
     final BigDecimal value = new BigDecimal(n); 
    } 

    public int power(){ 
     BigDecimal two = new BigDecimal("2"); 
     BigDecimal remainder = value; 

回答

4

你需要使它成为一个领域,不是一个局部变量:

public class PowerTwo { 

private final BigDecimal value; 

应该是构造之外。

+0

谢谢。我试图在构造函数之外添加它,但是没有意识到我需要在构造函数中删除声明。 – 2012-01-06 03:28:29

1

您在每个构造函数中定义了一个局部变量,它不在最后一个构造函数的作用域中。改为将其作为课程的一个属性。