- Static
- #Static 定义的变量
其调用:
类名. 变量名
所有同一个类的类成员共享, 共用一个;
其值可以修改
不能将方法体内的局部变量声明为 static
#Static 定义的方法
其调用:
类名. 方法
如 Math.pow
所有同一个类的类成员共享, 共用一个;
其值可以修改
静态方法不能向对象实施操作, 静态方法中不可以使用 this 关键字;
不能访问类中实例域 (非 static 域 / 变量 / 方法), 可访问类的静态域 / 变量 (而且无需类名. 变量名的普通调用格式):
- //demo
- class Employee
- {
- private static int nextId = 1;
- public static int getNextId()
- {
- return nextId;
- }
- }
被 static 定义的静态域独立于 Java 的堆栈, 独占一个存储空间;
static 的方法在装载 class 得时候往往首先完成, 比构造方法早, 此时非 static 得属性和方法还没有完成初始化.
所以不能调用.
#Static 定义的类中程序块
如
- public class example{
- static{
- //some
- }
- }
在该段代码被执行时, 首先执行 static 中的程序, 并且只会执行一次.
- final
- #final 定义的类
不能被继承; 不允许其他人对这个类进行任何改动;
类中所有方法都被隐式设置为 final;
类中的成员变量可以被定义为 final 或非 final;
#final 定义的方法
不能被重写
#final 定义的变量
只能赋值一次, 赋值后不能再修改;
来源: http://www.jianshu.com/p/274e0cc99b4d