修飾符中有默認修飾符、可見性修飾符、限定修飾符等
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能用於類的本身,類的成員,局部變量。