首页 > 解决方案 > 为什么我们不能在java的类构造函数中声明变量?

问题描述

如果在创建对象时构造函数是隐式调用的函数,那么我们应该在构造函数中声明变量,但它会给出错误。

class A{
    
    public A(){
        int a =5;
    }
}


public class assignment2 {
    public static void main(String[] args) {
       A obj = new A();
       System.out.println(obj.a);
    }
}

错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
        a cannot be resolved or is not a field

        at ass2.main(ass2.java:14)

标签: javaoopconstructor

解决方案


变量int a不是一个字段,但正如你所说,变量和构造函数将完成后立即它不再可访问,绝对不是obj.a

如果您希望以这种方式使用它,您应该将它的定义移到构造函数之外(所以基本上是 create field ) a

Java POJO 中的字段、变量、属性和属性有什么区别?


推荐阅读