static
对java中修饰符的总结整理,尤其是static的理解,static总是忘记
其他修饰符修饰的变量有效范围如下:
类内 | package内 | 子类 | 其他package | |
private | yes | no | no | no |
default | yes | yes | no | no |
protected | yes | yes | yes | no |
public | yes | yes | yes | yes |
修饰类 | 修饰成员 | 修饰局部变量 | |
static | 可以修饰内部类 | yes | |
final | yes | yes | yes |
abstract | yes | yes |
- 成员变量:类体中定义的变量,包括实例变量和静态变量
- 局部变量:类的方法体中定义的变量,有效范围是方法体的两个{}之间
static修饰的变量:静态变量或全局变量。有效范围可以跨类,甚至可以达到整个应用程序,可以直接以“类名.静态变量”的形式在其他类里使用。
Val1.class和Val3.class在一个package中,Val2.class在另一个package中
静态变量(static修饰的)变量是default
运行正常:
Val3.class在一个package里
运行也正常:
Val2.class报错,因为不在一个package里,把Val1.class里的静态变量time加上public修饰词,让别的package也可以访问,就运行正常了
Val1.class
Val2.class
输出
static表示不属于某个实例,属于类的,可以修饰成员,也可以修饰方法
比如定义人
class Person{
static long totalNum; //人类的总数,不属于具体的某个实例人,属于人类这个类的变量
}
理解了红字就会用static了
相关阅读
static_cast 和 dynamic_cast 1.static_cast static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说
Qt 中static_cast 和 reinterpret_cast的区别
Qt 中static_cast 和 reinterpret_cast的区别 1. C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作。因此,常做为隐
static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类:如果这个静态函数出现在类里,那么它是一个静态成员函数;静态成
概述 static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。 但是对于c语言初学者,static由于