访问对象变量时出错

时间:2016-12-15 01:45:51

标签: java

以下代码给出错误:

public class Test {
    public Test(int Age){
        int age = Age ;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test gg = new Test(5);
        System.out.println(gg.age);
    }

}

错误是

  

年龄无法解决或不是字段

我如何访问Test.age

3 个答案:

答案 0 :(得分:3)

你没有让age成为一个字段。只是构造函数的局部变量。我想你想要的东西,

public class Test {
    int age; // <-- a field. Default access for this example. private or protected
             //     would be more typical, but package level will work here.
    public Test(int Age){
        this.age = Age; // <-- "this." is optional, but indicates a field.
    }
    public static void main(String[] args) {
        Test gg = new Test(5);
        System.out.println(gg.age);
    }
}

答案 1 :(得分:0)

age中没有字段Testage的构造函数中有一个名为Test的参数,但没有字段。您可以使用以下行声明年龄:

private int age;

插入到构造函数的第一行上方,这将是实例变量的正常位置。

答案 2 :(得分:-1)

  

您缺少类字段,age是方法的本地,并且对于同一个类或类之外的任何其他方法都无法访问。它只存在于Test构造函数中。

public class Test {
    public int age;
    public Test(int Age){
         age = Age ;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test gg = new Test(5);
        System.out.println(gg.age);
    }
}