今天看书,其中关于final关键字的用法之一-final参数不明白,特来请教。下面是书中提供的代码
-----------------------------------------------------------------------------------------------------
- package cn.itcat.sixthchapter;
- class Gizmo{
- public void spin(){}
- }
- public class FinalArguments {
-
- void with(final Gizmo g){
- // g = new Gizmo(); //Illegal
- g.spin();
- }
-
- void without(Gizmo g){
- g = new Gizmo(); //OK-g not final
- g.spin();
- }
-
- void f(final int i){
- // i++; //Illegal
- }
-
- int g(int i){
- return i+1; //OK
- }
- public static void main(String[] args) {
- FinalArguments arguments = new FinalArguments();
- arguments.without(null);
- arguments.with(null);
-
- }
- }
复制代码
为什么不能创建新的Gizmo对象,f()方法中 i++也是非法的,以及设置final参数有什么意义? |