为什么在编译这个类时会看到“找不到符号”?

时间:2012-01-06 03:21:44

标签: java

我有一个包含四个构造函数的类。当我尝试编译主类时,我在此代码片段的最后一行收到错误“找不到符号”。但是这个类的每个构造函数都定义了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;

2 个答案:

答案 0 :(得分:4)

您需要将其设为字段,而不是局部变量:

public class PowerTwo {

private final BigDecimal value;

它应该在构造函数之外。

答案 1 :(得分:1)

您在每个构造函数中定义一个局部变量,该变量不在最后一个构造函数的范围内。把它变成班级的财产。