2 azy759 Azy759 于 2016.05.10 12:35 提问

java 能不能在类或方法中定意一个全局变量,每次访问,都指向这个变量。如C语言一样

在C中,加上static就可以了。
我想防止函数重入,在C中
fun(){
static int flag=0;
if(flag)return;
flag=1;
...
flag=0;
}
这样就好,在java中想完成类似的功能,可以怎么做呢。
我使用了static好像报错了。

public static void fun(){
static boolean flag;
}

大概说flag只能用终态,用终态不就不能改变了,这样不行。

3个回答

Grindstone_Fos
Grindstone_Fos   2016.05.10 12:55
已采纳

在java中static静态修饰符不能在方法中定义

public class Test {

    private static boolean flag=false;
    public static void main(String[] args) {
        System.out.println(flag);
        flag=!flag;//置反
    }

}


1.static 修饰符
1)修饰内部类class Outer{static class Inner{}}
2)修饰属性(类的内部,方法外部)

a)此变量为类变量,类变量在加载时初始化,且初始化1次。
b)类变量可以通过类名访问,被所有对象所共享
c)假如一个类中有多个类变量,初始化顺序从上到下

3)修饰代码块(类内部,方法外部)
a)称之为静态代码块
b)类加载时执行,执行一次
c)可以对类变量赋值,或调用静态方法。

4)修饰方法
a)称之为静态方法,可以通过类名直接访问。
b)静态方法内部只能访问静态成员(类变量,静态方法)
c)静态方法可以被重写,但没有多态。

bdmh
bdmh   Ds   Rxr 2016.05.10 13:15

在类级别,,加一个static变量就行了

chuyangxiang
chuyangxiang   2016.05.10 16:26

方法中的变量都是局部变量

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c语言中不允许在函数外部给全局变量赋值
今天,在写条件编译的时候,出现了在函数外部给全局变量赋值的情况,gcc报错,那么c语言为什么不允许在函数外部给变量赋值呢?为什么声明变 量的时候可以对变量进行赋值? 出错代码: 1 /* 2 * ====================================================================================
C语言-全局变量与局部变量、全局函数与内部函数
1、全局变量与局部变量
C语言中全局变量的定义与调用
1. 谭浩强 书中对‘全局变量’的定义     在函数内定义的变量是局部变量,而在函数外定义的变量叫做外部变量,外部变量是全局变量。全局变量可以为本文件中其他函数所共用它的有效范围从定义变量的位置开始到本源文件结束。     建立全局变量的作用是增加了函数间数据联系的渠道。 2.  谭浩强 书中对‘全局变量’的声明     用extern声明:        如果外部变量不在文件的开头定
C语言中全局变量和局部变量同名时的访问方法
#include int i = 911; /* * 方法一:用一个函数来访问 * */ int get_global() { return i; } int main() { int i = 3; int tmp; printf("global_i = %d, local_i = %d\n",get_global(), i); /*
C语言之关键字、宏定义、条件编译
一 全局变量和局部变量 变量作用域:变量的可用范围按照作用域的不同,变量可以分为:局部变量和全局变量 局部变量:定义在函数内部的变量以及函数的形参称为局部变量 作用域:从定义哪一行开始直到与其所在的代码块结束(遇到return为止) 生命周期:从程序运行到定义哪一行开始分配存储空间到程序离开该变量所在的作用域 特点: 1、相同作用域内不可以定义同名变量 2、不同作用范围可以定义同名变量,内部作用域
C语言如何在两个文件中访问同一个全局变量
方法一: 不使用头文件。 1.c中
java 中如何设置可被所有类访问的全局变量
java不同于C/C++,其所有的方法和变量都被封装在类中,
C++类里的成员函数如何调用全局变量
比如在hello.h文件中定义了一个类A,在main.cpp里有一个全局变量var,现在问题是如何在hello.cpp里调用var呢?     方法:在hello.h文件里extern重新声明一下var变量,这样就可以在hello.cpp里使用这个变量了.
c 语言中宏定义和定义全局变量的区别
http://zhidao.baidu.com/link?url=e0AgK3IuoChxC9Cv7vl3D0OacTUdj4DRf60XHTFti5goaquEzwZWR_G_22jWQO8BJ8zs30lA37_Ry-lZdBtTsK  宏定义和定义全局变量的区别:  1 作用时间不同。  宏定义在编译期间即会使用并替换,而全局变量要到运行时才可以。  2 本质类型不同。  宏定义的
C语言static关键字解析
1、概述  static 声明的变量在C语言中有两方面的特征:  1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。  2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。2、问题:Static的理解  关于static变量,请选择下面所有说法正确的内容: