static变量

public class  StaticTest{
    private  static  int  x=100;
    public  static  void  main(String  args[] ){
        StaticTest  hs1=new  StaticTest(  );
        hs1.x++;
		System.out.println("1="+x);
        StaticTest  hs2=new  StaticTest(  );
        hs2.x++;		
		System.out.println("2="+x);
        hs1=new  StaticTest( );
        hs1.x++;
		System.out.println("3="+x);
		StaticTest.x--;
		System.out.println("4="+x);
}
}

java里面非静态的变量,不new出来他的类是一定不能用的,但是如果是static的不管new不new出来对象,都能调用



在C++中,const和static是两个重要的关键字,用于修饰变量、函数和类成员,以不同方式控制数据的生命周期、访问权限和存储方式[^1][^3]。 ### const变量 const关键字用于定义常量,被const修饰的变量不能被写入或修改,其值在整个程序运行期间保持不变。例如: ```cpp const int num = 10; // 以下语句会编译错误,因为num是常量不能被修改 // num = 20; ``` 使用场景: - 当需要一个值在程序运行过程中保持不变时,使用const可以提高代码的安全性和可读性。例如,定义数学常量π: ```cpp const double PI = 3.1415926; ``` - 在函数参数中使用const,可以防止函数内部修改传入的参数。例如: ```cpp void printValue(const int value) { // 不能修改value的值 std::cout << value << std::endl; } ``` ### static变量 static主要影响变量存储期和链接可见性。static修饰的变量可以被写入和修改,除非它们也被const修饰。 - **局部静态变量**:在函数内部使用static修饰的变量,会在程序的整个运行期间存在,而不是像普通局部变量那样在函数退出时销毁。例如: ```cpp void func() { static int count = 0; count++; std::cout << count << std::endl; } ``` 在这个例子中,count变量只会在第一次调用func函数时初始化,之后每次调用func函数,count的值会保留上一次调用结束时的值。 - **全局静态变量**:在全局作用域中使用static修饰的变量,其作用域仅限于定义它的文件,其他文件无法访问。例如: ```cpp // file1.cpp static int globalStaticVar = 10; // file2.cpp // 无法访问file1.cpp中的globalStaticVar ``` - **类的静态成员变量**:在类中使用static修饰的成员变量,属于类本身,而不是类的某个对象。所有对象共享同一个静态成员变量。例如: ```cpp class MyClass { public: static int staticMember; }; // 静态成员变量需要在类外进行初始化 int MyClass::staticMember = 0; ``` ### const和static变量的区别 - **可修改性**:const修饰的变量不能被修改,而static修饰的变量可以被修改,除非同时被const修饰[^5]。 - **存储期和作用域**:const变量只是表示其值不可变,存储期和作用域取决于其定义的位置;而static变量主要影响存储期和链接可见性,局部静态变量有更长的存储期,全局静态变量的作用域仅限于定义它的文件。 ### const和static一起使用 当static和const一起使用时,如`static const int x = 100;`,意味着变量x是一个在单个文件内可见的常量,其值在整个程序运行期间不变,并且在函数调用之间保持其值[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值