這裏的普通方法和成員變量是指,非靜態方法和非靜態成員變量
首先static是靜態的意思,是修飾符,能夠被用來修飾變量或者方法。html
static成員變量有全局變量的做用 非static成員變量則沒有全局變量的做用 局部變量是類的方法裏面的變量
靜態static成員變量是指類的成員變量,他不屬於類的對象,只單獨屬於類,被全部對象共享。當在類中改變他的值時,他在每一個對象裏面的值都會隨之改變。java
這也就是說在對象中不能改變他的值,只能在他所在的類中改變,若是他帶有final的話(static final)就代表這是一個常量。
static變量是靜態變量,當加載類時即已加載,非static變量實例對象時加載。工具
static變量是靜態變量當改變其中的值,其它實例中的該static變量也會改變,非static變量只會在具體所在的那個對象中改變,不會影響其它實例。post
例子: static int i=1; 這裏的i就是一個靜態變量。具體特性以下url
public class demo { static int i=10; public static void main(String[] args){ int k=i;//直接調用 int j=demo.i;//經過類來調用 System.out.println("直接調用k:"+k); System.out.println("經過類來調用j:"+j); } }
是在類中執行該方法時,該方法並不對成員變量有任何操做,也就是說該靜態方法的操做不針對對象,只針對該類時,使用。那麼使用該類也就不須要建立對象,而能夠直接經過類名.方法名實現。spa
類修飾符:線程
public(訪問控制符),將一個類聲明爲公共類,他能夠被任何對象訪問,一個程序的主類必須是公共類。3d
abstract,將一個類聲明爲抽象類,沒有實現的方法,須要子類提供方法實現。code
final,將一個類生命爲最終(即非繼承類),表示他不能被其餘類繼承。htm
friendly,默認的修飾符,只有在相同包中的對象才能使用這樣的類。
成員變量修飾符:
public(公共訪問控制符),指定該變量爲公共的,他能夠被任何對象的方法訪問。
private(私有訪問控制符)指定該變量只容許本身的類的方法訪問,其餘任何類(包括子類)中的方法均不能訪問。
protected(保護訪問控制符)指定該變量能夠別被本身的類和子類訪問。在子類中能夠覆蓋此變量。
friendly ,在同一個包中的類能夠訪問,其餘包中的類不能訪問。
final,最終修飾符,指定此變量的值不能變。
static(靜態修飾符)指定變量被全部對象共享,即全部實例均可以使用該變量。變量屬於這個類。
transient(過分修飾符)指定該變量是系統保留,暫無特別做用的臨時性變量。
volatile(易失修飾符)指定該變量能夠同時被幾個線程控制和修改。
方法修飾符:
public(公共控制符)
private(私有控制符)指定此方法只能有本身類等方法訪問,其餘的類不能訪問(包括子類)
protected(保護訪問控制符)指定該方法能夠被它的類和子類進行訪問。
final,指定該方法不能被重載。
static,指定不須要實例化就能夠激活的一個方法。
synchronize,同步修飾符,在多個線程中,該修飾符用於在運行前,對他所屬的方法加鎖,以防止其餘線程的訪問,運行結束後解鎖。
native,本地修飾符。指定此方法的方法體是用其餘語言在程序外部編寫的。