final方法 类 变量

final方法 类 变量

ID:20498812

大小:26.50 KB

页数:3页

时间:2018-10-13

final方法 类 变量_第1页
final方法 类 变量_第2页
final方法 类 变量_第3页
资源描述:

《final方法 类 变量》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如此,final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一。 final成员   当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定

2、义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。下面这段代码演示了这一点: importjava.util.List; importjava.util.ArrayList; importjava.util.LinkedList; publicclassBat{      finalPI=3.14;           //在定义时便给址值      finalinti;             //因为要在构造函数中进行初始化,

3、所以此处便不可再给值      finalListlist;         //此变量也与上面的一样      Bat(){          i=100;          list=newLinkedList();      }      Bat(intii,Listl){          i=ii;          list=l;      }      publicstaticvoidmain(String[]args){          Batb=newBat();          b.list.add(ne

4、wBat());          //b.i=25;          //b.list=newArrayList();          System.out.println("I="+b.i+"ListType:"+b.list.getClass());          b=newBat(23,newArrayList());          b.list.add(newBat());          System.out.println("I="+b.i+"ListType:"+b.list.getClass())

5、;      } }   此程序很简单的演示了final的常规用法。在这里使用在构造函数中进行初始化的方法,这使你有了一点灵活性。如Bat的两个重载构造函数所示,第一个缺省构造函数会为你提供默认的值,重载的那个构造函数会根据你所提供的值或类型为final变量初始化。然而有时你并不需要这种灵活性,你只需要在定义时便给定其值并永不变化,这时就不要再用这种方法。在main方法中有两行语句注释掉了,如果你去掉注释,程序便无法通过编译,这便是说,不论是i的值或是list的类型,一旦初始化,确实无法再更改。然而b可以通过重新初始化来指定i的

6、值或list的类型,输出结果中显示了这一点: I=100ListType:classjava.util.LinkedList I=23ListType:classjava.util.ArrayList   还有一种用法是定义方法中的参数为final,对于基本类型的变量,这样做并没有什么实际意义,因为基本类型的变量在调用方法时是传值的,也就是说你可以在方法中更改这个参数变量而不会影响到调用语句,然而对于对象变量,却显得很实用,因为对象变量在传递时是传递其引用,这样你在方法中对对象变量的修改也会影响到调用语句中的对象变量,当你在方法

7、中不需要改变作为参数的对象变量时,明确使用final进行声明,会防止你无意的修改而影响到调用方法。 另外方法中的内部类在用到方法中的参变量时,此参变也必须声明为final才可使用,如下代码所示: publicclassINClass{     voidinnerClass(finalStringstr){          classIClass{              IClass(){                  System.out.println(str);              }          } 

8、         IClassic=newIClass();      }    publicstaticvoidmain(String[]args){        INClassinc=newINClass();        inc.innerClass(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。