靜態的理解:
1.類中被static修飾的成員被所有物件(例項)所共享,也就是說這個成員不屬於任何乙個物件(例項),而是屬於這個類;所以靜態變數又稱為類變數.
2.類中的某個方法被static修飾與否,生命週期都是一樣的,但是如果這方法沒有訪問非靜態成員,則建議設定成靜態,這樣在呼叫時可以不用建立物件,節省記憶體空間.換言之,物件是封裝特有資料的,如果乙個方法不訪問特有資料,你為啥要建立物件去呼叫這個方法呢? ps:物件(例項)的存在就是為了封裝特有資料的.如果不需要特有資料,物件就沒有建立的意義.
靜態什麼時候用?
1.靜態變數
a.當分析物件中所具有的成員變數的值都是相同的,這時這個成員變數就可以被靜態修飾,因為這樣當建立多個物件時可以節省儲存空間.
b.只要資料在物件中是不同的,就是特有資料,應該被物件封裝,必須儲存在物件中,是非靜態的 .
2.靜態方法
a.方法是否用靜態修飾,就參考一點:就是該方法是否訪問了物件的特有資料 ? 如果訪問了,就是非靜態,如果沒有訪問,就 可以設定為靜態. 簡單點說:從源**看,該方法是否需要訪問非靜態成員變數? 如果需要,該方法就是非靜態的,如果不需要,該方法就可以定義成靜態的,當然也可以定義成非靜態的,但是非靜態需要被物件呼叫;而僅建立物件呼叫非靜態的方法,並且該方法沒有訪問特有資料(非靜態成員),那麼這個物件的建立是沒有實際意義的.
java之super,this總結 文本版
this 1.this存在於非靜態方法中,是對所在方法所屬物件的 位址 持有 2.this在構造方法中的第一行時,是對其他構造方法的 語法級別的 替代 例如 this 這就是在呼叫空參構造 super 1.super存在於子類非靜態方法中,是對所在方法所屬物件中父類空間的 位址 引用 ps 這個時候...
java之抽象的總結 文本版
問題 1,抽象類也是定義一些規則,為啥沒有被介面完全替代?答 介面 1,定義了一些規則 增強功能 乙個類實現多個介面 和多型 多個類實現乙個介面 抽象類 1.定義了一些規則 2.將一部分相同 進行了抽取,增加了復用性 3.將自身的功能給予了子類,相當於一種功能的積累 有些時候只需要定義規則 而有些時...
java之集合雜思 文本版
list hashset treeset 是乙個條件遞進的過程 list 是單列集合,有索引 所以可以保證存入順序和取出順序一致,所以是保序集合,元素可以重複 可以使用listiterator 迭代器 下邊兩個兒子,arraylist和linkedlist 在增刪改查效能方面各有所長,可能陣列的最好...