static与final
static
static修饰的变量为类的变量,属于类,即所有的该类的实例化对象共同使用该static变量
static方法中不能访问非static成员
这个很容易理解,每个类都只有一份static的资源,还没类还没实例化就有了该static方法,但没有实例化的成员即非静态成员,所以静态方法是不能访问非static成员的
static的变量和方法或者块都是属于类的,普通变量和方法是属于对象的。
final
- 用final修饰类,表明中这个类是不能不继承的,类中的变量可以是非final的变量,但所有的方法都会被隐式地指定为final方法
使用final修饰方法原因有两个。一,把方法锁定,防止任何继承类重写该方法。二,提高效率。在早期的Java实现版本会将final方法转为内嵌调用,但如果方法过于庞大,可能看不到内嵌的优化效果,新的Java版本已经 不需要final方法来优化
final不能修饰构造方法
- final修饰变量,即表示该变量被定义为一个常量,该常量被初始化赋值之后就不能修改
评论