修飾符

修飾符中有默認修飾符、可見性修飾符、限定修飾符等

1、默認修飾符使包中的類,方法,數據域只能在本包內使用,而不能再用於其它包;eg:





2、公共性修飾符(public,不僅能讓類,方法,數據域在本包內使用,還能讓其它包使用;eg:




3、私有修飾符(private)只能讓類中的方法和數據域在本類中使用,而不能在其它類中使用;

故限定修飾符只能用在類的成員上,不能用在整個類上,eg:



限定性修飾符在數據的私有性上有廣泛的應用,爲了使用戶不能隨便更改數據域(不正當使用數據域),程序常常要將數據域限定爲私有性

而當用戶想要使用數據域時,就用公共性方法獲得,或改變數據域的值,此方法就叫做數據域的封裝;而如果我們想更新數據域時,就要用到一種修改方法,例如下面程序中的Modifier_test15()方法;eg:


直接引用類中的數據域number是錯誤的,故只能通過方法Modifier_test15()來取值和計算.


4、protected修飾符:允許子類訪問定義在父類中的數據域和方法,但不允許非子類訪問這些數據域和方法

protected修飾符能使本報包內的數據和方法被本包中的類引用。eg:

package 第11章;

public class PROTECTED {
    static int a;
    public static int b;
    private static int c;
    protected static int d;
}

package TesT;

import 第11章.PROTECTED;

public class PROTECTED1 extends PROTECTED {
    public static void main(String[] args){
        //輸入a = 78;將顯示錯誤
        b = 78;
        //輸入c = 78;將顯示錯誤
        d = 78;
    }
}

數據和方法的可用性如下所示:

修飾符 在同一類可訪問 在同一包中可訪問 在子類可訪問 在不同包可訪問
public
protacted ×
默認修飾符 × ×
private × × ×


5、final(最終)修飾符;

被final修飾的類和方法是不能被擴展的,被修飾的方法是可以訪問的,但不能被重寫,修飾的數據域是常數,不能做第二次賦值;稱被final修飾的類爲最終類

final class FINAL {
    
}

//class p extends FINAL{ }程序顯示錯誤


6、abstract(抽象)修飾符

被abstract修飾的類不能生成對象,必須被繼承eg:

abstract class ABSTRACT {
    
}

class l extends ABSTRACT{
    
}

class o{
    //ABSTRACT s1 = new ABSTRACT();錯誤
    l s2 = new l();
}

修飾符private,protected能用於類的成員(數據域和方法)上;abstract能用於類的本身;默認修飾符,修飾符public能用於類的本身,類的成員;修飾符final能用於類的本身,類的成員,局部變量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章