Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1700165
  • 博文数量: 210
  • 博客积分: 10013
  • 博客等级: 上将
  • 技术积分: 2322
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-25 15:56
文章分类

全部博文(210)

文章存档

2011年(34)

2010年(121)

2009年(37)

2008年(18)

我的朋友

分类:

2011-03-03 14:38:43

一.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后,编译器就可以把对那个方法的所有调用都置入“嵌入”调用里(内嵌机制)。
     二.static总结
     1.static修饰成员函数:该成员函数不能使用this对象
     static不能修饰构造函数
     static不能修饰函数参数
     static不能修饰局部成员变量
     2.static修饰成员字段
     当类被虚拟机加载时,首先按照字段声明的先后顺序对static成员字段进行初始化
     3.static修饰语句块
     当类被虚拟机加载时,按照声明顺序先后初始化static成员字段和static语句块
     static所修饰的方法和字段是只属于类,所有对象共享。
     在static所修饰的函数和语句块中不能使用非static成员字段。
     在Java不能直接定义全局变量,是通过static来实现的
     在Java中没有const,不能直接定义常量,通过static final来实现
阅读(2590) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~