`
longsy
  • 浏览: 138038 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java中final与static关键字

阅读更多

一.final总结

1.final修饰类:表示该类不可继承
  final不能修饰interface接口
2.final修饰方法:表示该方法不能被子类覆盖(即子类不能重写父类的final方法,可以继承)
  final不能修饰构造函数
3.final修饰字段属性:表示属性值第一次初始化后不能被修改
  final属性可以直接初始化或在构造函数中初始化
  如果属性是直接初始化,则其值不能被其它函数(包括构造函数)修改
4.final修饰函数参数
  参数值不能被函数修改
5.final修饰函数中的局部变量
  局部变量被第一次初始化后不能被修改
  public void hello() {
 final String name;
        name = "hi";       //ok
        name = "hello";    //error
  }

使用final的意义:
之所以要使用final方法,可能是出于对两方面理由的考虑。第一个是为方法“上锁”,防止任何继承类改变它的本来含义。设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖或改写,就可以采取这种做法。
采用final方法的第二个理由是程序执行的效率。将一个方法设成final后,编译器就可以把对那个方法的所有调用都置入“嵌入”调用里。

二.static总结

1.static修饰成员函数:该成员函数不能使用this对象
  static不能修饰构造函数
  static不能修饰函数参数
  static不能修饰局部成员变量

2.static修饰成员字段
  当类被虚拟机加载时,首先按照字段声明的先后顺序对static成员字段进行初始化
3.static修饰语句块
  当类被虚拟机加载时,按照声明顺序先后初始化static成员字段和static语句块

static所修饰的方法和字段是只属于类,所有对象共享。
在static所修饰的函数和语句块中不能使用非static成员字段。
在JAVA不能直接定义全局变量,是通过static来实现的
在Java中没有const,不能直接定义常量,通过static final来实现

分享到:
评论
1 楼 incredible 2010-06-13  
good   !

相关推荐

Global site tag (gtag.js) - Google Analytics