为什么char型数组定义在注释的地方就不行?

 package cn.lut.test;

public class InvokeTest {
    char a[]={'a','b','c'};
    public static void main(String[] args) {
        //char a[]={'a','b','c'};
        InvokeTest test=new InvokeTest();
        System.out.println(test.a);
    }
}

看懂了。。。你那个test是InvokeTest类的一个对象,其只可以调用该类的成员方法和成员变量,你在成员方法中定义了一个变量,其并不属于该类的成员变量,故会报错。

在上面的定义的是全局变量。 而你在main 方法里面直接定义一个Char[]数组 你重新new了一个自身的方法 去调用main里面的方法肯定不对的啊

表示看不懂你要表达的问题

在那定义,属于局部,调用的方式需要改下

IDEA 亲测,上面的代码可以运行

对象只能调用自己有权限的方法和自己有权限的属性,你放在上面就表示这个a的char数组是类的属性,而且这个对象有权限调用,就可以使用,但放在方法里面,就不是类的属性了,只是个局部变量,对象只能通过调用它的方法来修改局部变量的值(比如通过传参改值)。

楼上的顶,是可以的,只会输出全局变量a里面的内容

可以输出啊 ,不过输出的是上面全局的 main方法中的被注释掉 不会执行