• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java面向對象
    Java異常
    Java數組
    Java常用類
    Java集合
    Java IO流
    Java線程
    Java反射
    Socket編程
    Java注解開發
    Java GoF設計模式
    HashMap
    Java內存模型
    Java線性表

    Java中final關鍵字的作用

     

     

    final關鍵字修飾類, 修飾字段, 修飾方法,修飾局部變量,修飾方法的形參

     

    final修飾類,表示最終類, 不能被繼承,不能作為父類存在

     

    final修飾字段,在定義時必須顯示初始化, 不能被修改, 一般與static同時使用,所有字母都大寫,稱為final常量

     

    final修飾方法,不能被覆蓋(重寫)

     

    final修飾局部變量, 一旦初始化就不能再修改, 注意final修飾引用類型變量,是指這個變量不能再指向 其他對象 , 可以修改它的字段值

     

    final修飾方法形參, 在方法體中不能修改final參數的值

     

    package com.bjpowernode.chapter01.demo04.p1;
    /**
     * 1) final修飾類,表示這個類是最終類, 不能被繼承
     * 		如System類/String類就是使用final修飾的
     * 		當定義的類不想被別的類繼承時, 就可以使用final修飾
     * @author Administrator
     *
     */
    public final class Father {
    
    }

     

    package com.bjpowernode.chapter01.demo04.p2;
    /**
     * 2) final修飾字段
     * 		final字段必須初始化,要么在定義時賦初值,要么在構造方法中賦初值
     * 		final字段不能重新賦值
     * 		一般情況下,final修飾字段時, 同時使用static一起修飾, 稱為final常量 , 所有字母都大寫
     * @author Administrator
     *
     */
    public class Father2 {
    	int xx;
    	int yy = 20; 
    	
    	final int oo = 456;  		//final字段在定義時顯示初始化
    	final int zz;				//final字段在構造方法中顯示初始化
    	final static double PI = 3.14;		//final常量 
    	
    	public Father2() {
    		zz = 121;
    	}
    	
    	public void mm() {
    		xx = 123;
    		yy = 202;
    //		zz = 789;  //he final field Father2.zz cannot be assigned
    //		oo = 369;	//final字段不能被重新賦值
    	}
    }

     

    package com.bjpowernode.chapter01.demo04.p3;
    /**
     * 3) final修飾方法, 不 能被子類重寫(覆蓋)
     * 		注意:子類可以繼承到final方法, 只是不能重寫
     * @author Administrator
     *
     */
    public class Father3 {
    	public void m1(int xx) {
    		System.out.println("父類的實例方法,可以子類覆蓋");
    	}
    	
    	public final void m2(int x, int y ) {
    		System.out.println("使用final修飾的方法, 不能被子類重寫");
    	}
    }

     

    package com.bjpowernode.chapter01.demo04.p4;
    
    import com.bjpowernode.chapter01.demo03.Book;
    
    /**
     * 4) final修飾局部變量
     * 		一旦初始化完成, 就不能再重新賦值
     * @author Administrator
     *
     */
    public class Test {
    
    	public static void main(String[] args) {
    		//定義局部變量
    		int x ;
    		x = 10;
    		int y = 20; 
    		//final修飾局部變量
    		final int z;
    		z = 30;
    		final int t = 40;
    		
    		//可以給局部變量重新賦值
    		x = 101;
    		y = 202;
    //		z = 303; 		//不能給final局部變量重新賦值
    		
    		//final修飾引用類型變量
    		final Book  book1 = new Book("java入門", "勇哥", "動力節點", 66.6);
    		//final關鍵字修飾的是book1變量,不能給book1變量重新賦值,可以對象的字段值
    //		book1 = new Book("java高級", "勇哥", "動力節點", 88.8);
    		book1.name = "java高級技術";
    		
    	} 
    
    }

     

    package com.bjpowernode.chapter01.demo04.p5;
    /**
     * 5) final修飾方法形參
     * 		final形參不能被賦值
     * @author Administrator
     *
     */
    public class Test {
    
    	public static void main(String[] args) {
    		m1(10, 20); 	//在調用方法時, 給final形參初始化
    	}
    
    	public static void m1( int x, final int y ) {
    		x = 101;
    //		y = 202;		//final形參不能被賦值
    	}
    }

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏