为了账号安全,请及时绑定邮箱和手机立即绑定

静态方法中声明一个(非)静态变量的问题

我发现在静态方法中声明一个非静态变量,并赋值后的此静态方法,也能在另一个静态方法中通过类直接调用。是因为我声明的是局部变量,所以对另一个调用此变量所在方法的方法并没任何影响吗?还有,我貌似并不能在静态方法中声明一个静态变量是为什么?

正在回答

2 回答

局部变量的作用范围是从声明开始到所在语句块(“{”“}”构成一个语句块)的结束

public static void foo() {
    if (...) {
        ...
        int a; // 局部变量a作用范围开始
        ...
    } // 局部变量a作用范围结束
    
    //此处a已经不存在
}

public static void foo1() {
    foo();
    //此处a也不存在
}

静态变量只能在类中声明,可以在方法中调用和赋值

0 回复 有任何疑惑可以回复我~
#1

小小小小小柯丶 提问者

好的,那么请问一下static关键字的具体作用应该怎么理解?我为何不能再在一个静态方法中定义静态变量了呢?
2018-02-05 回复 有任何疑惑可以回复我~
#2

Hsinwong 回复 小小小小小柯丶 提问者

static修饰的变量可以通过 类名.变量名 的方式直接访问,该类的所有对象可以共享这些变量。这个共享性是成员变量办不到的。 方法里的定义的变量都是局部变量,只能在当前方法中使用,加static没有任何意义。 还有,给你个建议,想入门Java应该着重于弄清楚它能做什么,你的需求怎么用它来实现,而不是过多的思考这门语言为什么这样设计,当你对Java有了全方位一定深度的了解,你自然会清楚它为什么这样设计,以及它的优缺点。
2018-02-05 回复 有任何疑惑可以回复我~
#3

小小小小小柯丶 提问者 回复 Hsinwong

好的,谢谢
2018-02-05 回复 有任何疑惑可以回复我~

因为方法是静态的


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

静态方法中声明一个(非)静态变量的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信