在Java中提供了很多的修飾符属愤,修飾符可以用來修飾類,接口籽慢,方法浸遗,變量的信息;不同的修飾符,可以控制不同的訪問權(quán)限;
以我們最開始見到的main方法來說:public static void main(String[] args){}
public 就是一個修飾符與public類似的修飾符還有default(默認)箱亿,private(私有)跛锌,protected(保護)
對于不同的修飾符,有不同的訪問范圍:
public(公有的)訪問權(quán)限极景,可以修飾類察净,接口,變量盼樟,方法;public所修飾的內(nèi)容氢卡,在當前類,同一個包晨缴,其他包都可以訪問;
protected(受保護的):可以修飾變量译秦,方法,不可修飾外部類;使用該修飾符修飾的類型可以在當前包击碗,類筑悴,同一包類的子類中訪問;其他包不可以訪問;
default(默認):可以修飾類,接口稍途,變量阁吝,方法使用該修飾符修飾的類型可以在當前包,類械拍,同一包內(nèi)的子類中訪問;其他包不可以訪問
private(私有的):可以修飾變量突勇,方法装盯,不能修飾外部類;使用該修飾符修飾的對象只可以在本類中使用,其他任何地方都不可以使用;
除了這些訪問的修飾符甲馋,Java中還存在其他的修飾符:比如static, final, abstract等修飾符;
static(靜態(tài)):可以修飾變量和方法埂奈,使用static修飾變量的時候,這個變量在內(nèi)存中只有一份定躏,也就是說無論這個類有多少個對象账磺,都使用同一個內(nèi)存空間,也就是說每個對象所訪問該變量的值都是一樣的痊远,如果有一個對象將這個值進行了修改垮抗,那么其他對象訪問這個值也就相應(yīng)的進行了修改;使用static修飾方法,使用static修飾的方法為靜態(tài)方法拗引,靜態(tài)方法中不可以調(diào)用沒有static的非靜態(tài)方法;
final(最終):使用final修飾的變量借宵,初始化之后,不可以再次修改這個變量的值矾削,也就說當給這個變量賦值之后壤玫,就不能再重新賦值;被final修飾的變量,當定義的時候哼凯,給他初始化了;final修飾的方法欲间,可以防止這個方法被子類重寫修改;
abstract(抽象): 可以修飾的類型有類和方法;當修飾類的時候,表示這個類是一個抽象的類;抽象類不可以實例化對象断部,只能被繼承;當抽象類的子孫類不是抽象類的時候猎贴,才可以被實例化;當abstract修飾方法的時候,表示這個方法是抽象方法蝴光,一個抽象類里面可以沒有抽象方法她渴,但是當一個類里面有抽象方法的時候,那么這個類是抽象類;