2 u013370108 u013370108 于 2016.04.07 09:57 提问

为什么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);
    }
}

8个回答

qq_25827845
qq_25827845   2016.04.07 10:16
已采纳

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

theSnai1
theSnai1   2016.04.07 12:37

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

xionglangs
xionglangs   Rxr 2016.04.07 13:37

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

chenhchen1994
chenhchen1994   2016.04.07 10:05

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

qq_25827845
qq_25827845   2016.04.07 10:05

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

suixianghui1989
suixianghui1989   2016.04.07 10:12

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

yujava2014
yujava2014   2016.04.07 13:41

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

qq_26431469
qq_26431469   2016.04.08 11:13

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!