Java關鍵字 final和static

1、final關鍵字ide

1.final類是不能被繼承的,因此也就沒有子類了。例子以下:會報錯wKiom1SSP_GyDoSWAACiK4F7LcU820.jpgspa

2.final 方法 順便複習下重載和重寫blog

2.1 重載例子:繼承

public  class TestFinalClass {get

    public static void main(String args[]){編譯器

       

    }it

    public void add(int i){io

        System.out.print("parents..add...");編譯

    }class

}

class TestChildrenClass extends TestFinalClass{

     public void add(int i,int j){

          System.out.print("children...add");

          System.out.print("33333");

     }

}

2.2 重寫 override

public  class TestFinalClass {

//    private String name;

    public static void main(String args[]){

       new TestChildrenClass().add(0);

    }

    public void add(int i){

        System.out.print("parents..add...");

    }

}

class TestChildrenClass extends TestFinalClass{

     public void add(int i){

          System.out.print("children...add");

          System.out.print("33333");

     }

}

2.3 若是父類不想子類重寫它的某個方法就能夠用final來定義該方法,例子以下

public  class TestFinalClass {

//    private String name;

    public static void main(String args[]){

       new TestChildrenClass().add(0);

    }

    public final void add(int i){

        System.out.print("parents..add...");

    }

}

class TestChildrenClass extends TestFinalClass{

     public void add(int i){//這樣寫會報錯,沒法重寫

          System.out.print("children...add");

          System.out.print("33333");

     }

}

除了上面這個用處,還有個用處就是高效。編譯器在遇到調用final方法時候會轉入內嵌機制,大大提升執行效率。

3.final變量

public class TestFinalClass {

    public final static String s = ".......final s";

    public final int E =1; //final成員變量必須付初值

//    private String name;

    public static void main(String args[]){


    }

    public static void add(int i){

        final String m; //final非成員變量能夠不用初值

        m = "...m"; //  給予初值

        m = "..sdjf";//出錯  不能再給予值

    }

}

4.final參數

public class TestFinalClass {

    public static void main(String args[]){

    }

    public static void add(final int i){

        System.out.print(""+i);   //  只能使用該參數

        i = 0;//不能給予值

    }

}

2、static 關鍵字

1.static方法

public class TestFinalClass {

    public static void main(String args[]){

         TestChildrenClass.add(0); //能夠在類建立以前引用這個static方法

    }

}

class TestChildrenClass {

     public static void add(int i){//然而是不能經過類的實例來引用的

          System.out.print("children...add");

     }

}

2.static 成員變量

public class TestFinalClass {

    public static void main(String args[]){

         String name = TestChildrenClass.name;//靜態成員

    }

}

class TestChildrenClass {

     public static String name = "user";//不能經過類的實例來引用的,當用private修飾時就不能夠用了

}

3.當static與final一塊兒使用來修飾成員變量和成員方法,可簡單理解爲「全局常量」! 3.1 對於變量,表示一旦給值就不可修改,而且經過類名能夠訪問。 3.2 對於方法,表示不可覆蓋,而且能夠經過類名直接訪問。

相關文章
相關標籤/搜索