我可以在Java的静态成员函数中声明一个静态变量吗?
private static int Fibonoci(int n) {
static int first=0;
static int second=1;
static int sum;
if(n>0)
我得到一个错误“非法修饰符”,如果我删除静态关键字没有错误,我需要这些变量是静态的
你可以在下面搜索框中键入要查询的问题!
private static int Fibonoci(int n) {
static int first=0;
static int second=1;
static int sum;
if(n>0)
我得到一个错误“非法修饰符”,如果我删除静态关键字没有错误,我需要这些变量是静态的
# 1 楼答案
必须将静态变量定义为类中的成员。方法中定义的变量是局部变量,它们的生命周期在方法结束时结束。局部变量是特定于调用的,成员变量是特定于对象的,静态变量是特定于类的变量
# 2 楼答案
不能在方法内将varibale声明为静态。
在方法内部,所有变量都是局部变量,在方法外部不存在,这就是为什么它们不能是静态的
你正在尝试为斐波那契数列编写代码,你不需要静态变量,这里有一些链接描述了这方面的sol
http://crunchify.com/write-java-program-to-print-fibonacci-series-upto-n-number/
http://electrofriends.com/source-codes/software-programs/java/basic-programs/java-program-find-fibonacci-series-number/
# 3 楼答案
Java中不允许函数作用域中的
static
# 4 楼答案
不能在方法中声明静态变量,
static
意味着它是一个类的变量/方法,它属于整个类,但不属于它的某个特定对象。 这意味着static
关键字只能在“类范围”中使用,即它在方法内部没有任何意义我不知道你想实现什么,但是如果你真的希望这些变量是静态的,那么你可以在你的类中将它们声明为静态字段
# 5 楼答案
Local variables
不能声明为静态。换句话说Static
不适用于local variables
我没有看到
declaring
它们static
在那里有任何用处跟随JLs on static fields
# 6 楼答案
根本原因:静态变量在类加载时分配内存,因为它们是类的一部分,而不是其对象
现在,如果静态变量在一个方法中,那么该变量属于该方法的作用域,JVM将无法为其分配内存