java的静态方法中不能有静态变量?

[复制链接]
查看11 | 回复5 | 2017-11-24 22:23:05 | 显示全部楼层 |阅读模式
在方法内部定义的叫“局部变量”,而不是静态变量,局部变量不能加static,包括protected, private, public这些也不能加。静态变量是定义在类中,方法体外面的。如果你清楚JVM,应该知道局部变量是保存在栈中的,而静态变量保存于方法区,局部变量出了方法就被栈回收了,而静态变量不会,所以在局部变量前不能加static关键字。...
回复

使用道具 举报

千问 | 2017-11-24 22:23:05 | 显示全部楼层
静态即:一个数据成员或方法属于它所在的类,而不象一般数据成员或方法,只属于它所在的对象,对象不同,数据成员的值也不同。 静态方法里的变量是临时变量,只在静态方法里有效。而声明STATIC表示该变量属于类。静态变量相当于C语言的全局变量.既然加了static的变量是类一级数据成员,有什么理由放在一个方法里面。方法里面的应该是局部的只有本方法才会用的,在方法里面...
回复

使用道具 举报

千问 | 2017-11-24 22:23:05 | 显示全部楼层
Java 在方法的内部是不能够定义静态变量的,可以将它定义为类变量。public class Test{static int i = 5; //将i 定义为类 的静态变量。public static void f() {//static int i = 5;//line 1}}...
回复

使用道具 举报

千问 | 2017-11-24 22:23:05 | 显示全部楼层
static修饰的是类变量也就是静态变量,作用域是整个类中。 而方法中定义的变量是局部变量,作用域只在于这个方法中。 如果用static修饰的话不就矛盾了,所以方法中定义的变量不允许用static修饰...
回复

使用道具 举报

千问 | 2017-11-24 22:23:05 | 显示全部楼层
在Java 中方法中都不能有 static 修饰的变量C/C++中可以...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行