对象方法无法访问Object变量?

时间:2014-12-26 22:06:14

标签: java

我正在努力掌握Java和OOP的基础知识。根据我的理解,如果我有一个用变量radius实例化的对象Circle,并将其传递给double x,那么Object的方法是否能够访问这些?

package classes;

public class Circle {

    Circle(double radius) {
        double x = radius;
    }

    double area() {
        return x * x * 3.1415; // x can't be resolved to a variable
    }

}

5 个答案:

答案 0 :(得分:3)

x仅在Circle构造函数的范围内可用。在类级别声明它,以便area方法

访问它
public class Circle {
    private double x;

    Circle(double radius) {
        this.x = radius;
    }

    ...
}

答案 1 :(得分:0)

在您的示例中,double x的范围仅限于构造函数。如果将其移出到对象级别,它将按预期工作。

public class Circle {

    private double x;

    Circle(double radius) {
        this.x = radius;
    }

    double area() {
        return x * x * 3.1415; 
    }

}

答案 2 :(得分:0)

此处您有范围问题。当你在构造函数中声明x时,你告诉它只能在它内部访问。

您可能想在外面宣布:

public class Circle {
    double x;

    Circle(double radius) {
        x = radius;
    }

    ...
}

答案 3 :(得分:0)

在课程级别定义后,使用'this'作为可读性。

public class Circle {
       private double x =0.0;
    Circle(double radius) {
        this.x = radius;
    }

    double area() {
        return this.x * this.x * 3.1415; // x can't be resolved to a variable
    }

}

答案 4 :(得分:0)

试试这段代码:

       public class Circle {
       private double x =0.0;
        Circle(double radius) {
    this.x = radius;
 }

double area() {
    return this.x *        this.x * Math.PI;
       }

 }