1. 程式人生 > >Java 知識點整理-2.面向物件

Java 知識點整理-2.面向物件

1、面向物件思想特點:是一種更符合我們思想習慣的思想;可以將複雜的事情簡單化;將我們從執行者變成了指揮者(角色發生了轉換)。

2、面向物件開發,就是不斷的建立物件,使用物件,指揮物件做事情。 

3、面向物件設計,其實就是在管理和維護物件之間的關係。 

4、面向物件特徵:封裝(encapsulation);繼承(inheritance);多型(polymorphism) 。

5、描述現實世界事物:屬性    就是該事物的描述資訊(事物身上的名詞);行為    就是該事物能夠做什麼(事物身上的動詞) 。

6、Java中最基本的單位是類,Java中用class描述事物也是如此。成員變數    就是事物的屬性;成員方法    就是事物的行為 。

7、定義類其實就是定義類的成員(成員變數和成員方法):成員變數    和以前定義變數是一樣的,只不過位置發生了改變。在類中,方法外;成員方法    和以前定義方法是一樣的,只不過把static去掉 。

8、類和物件的概念:類    是一組相關的屬性和行為的集合;物件:是該類事物的具體體現。

9、如何使用物件?建立物件並使用。格式:類名 物件名 = new 類名(); 

10、如何使用成員變數呢?物件名.變數名

11、如何使用成員方法呢?物件名.方法名(...) 

12、如果沒有任何引用指向該物件,那麼該物件就會變成垃圾。java中有完備的垃圾回收機制,會在不定時對其進行回收。

13、引用資料型別當形式引數傳地址值,基本資料型別當形式引數傳值。

14、匿名物件只適合對方法的一次呼叫,因為呼叫多次就會產生多個物件,不如用有名字的物件。

15、 匿名物件可以呼叫屬性,但是沒有意義,因為呼叫後就變成垃圾。如果需要呼叫還是用有名字物件。

16、匿名物件是沒有名字的物件 ,呼叫方法僅呼叫一次時可以節省程式碼;呼叫多次時匿名物件呼叫完畢就是垃圾,會被垃圾回收器回收。

17、匿名物件可以作為實際引數傳遞。 

18、封裝是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。

19、封裝好處:隱藏實現細節,提供公共的訪問方式; 提高了程式碼的複用性;提高安全性。

20、封裝原則:將不需要對外提供的內容都隱藏起來;把屬性隱藏,提供公共方法對其訪問。

21、private關鍵字特點:是一個許可權修飾符;可以修飾成員變數和成員方法;被其修飾的成員只能在本類中被訪問。

22、封裝和private的應用:把成員變數用private修飾;提供對應的getXxx()和setXxx()方法。

23、private僅僅是封裝的一種體現形式,不能說封裝就是私有。

24、this關鍵字特點:代表當前物件的引用 ,用來區分成員變數和區域性變數重名。

25、 構造方法Constructor概述和作用:給物件的資料(屬性)進行初始化。

26、構造方法格式特點:方法名與類名相同(大小也要與類名一致);沒有返回值型別,連void都沒有;沒有具體的返回值return。

27、構造方法不能用物件呼叫;在一建立物件的時候,系統就幫使用者呼叫了構造方法;建立物件時後面加個小括號,目的就是為了呼叫構造方法;構造方法裡什麼也不寫,也是有return語句的,格式是return;。

28、構造方法的過載::方法名相同,與返回值型別無關(構造方法沒有返回值),只看引數列表。

29、如果我們沒有給出構造方法,系統將自動提供一個無參構造方法;如果我們給出了構造方法,系統將不再提供預設的無參構造方法。這個時候,如果我們還想使用無參構造方法,就必須自己給出。建議永遠自己給出無參構造方法。

30、給成員變數賦值的兩種方式的區別:setXxx()方法:修改屬性值 ;構造方法:給物件中屬性進行初始化。在開發中用setXxx更多一些,因為比較靈活,getXxx()獲取屬性值,可以列印,也可以賦值給其他變數,做其他操作。

31、

public void setXxx(int xxx){
	this.xxx = xxx;
}
public int getXxx(){
	return xxx;
}

32、建立一個物件的步驟: Student s = new Student();
1,Student.class載入進記憶體(方法區); 2,宣告一個Student型別引用s ;3,在堆記憶體建立物件;4,給物件中屬性預設初始化值;
5,屬性進行顯示初始化;6,構造方法進棧,對物件中的屬性賦值,構造方法彈棧;7,將物件的地址值賦值給s。

33、static關鍵字的特點:隨著類的載入而載入;優先於物件存在;被類的所有物件共享;可以通過類名呼叫,其實它本身也可以通過物件名呼叫,推薦使用類名呼叫,靜態修飾的內容一般我們稱其為:與類相關的,類成員(類變數,類方法)。

34、如果某個成員變數是被所有物件共享的,那麼它就應該定義為靜態的。

35、共性用靜態,特性用非靜態。

36、不只是建立物件會載入類,呼叫靜態方法也會載入類。

37、static的注意事項1:在靜態方法中是沒有this關鍵字的:靜態是隨著類的載入而載入,this是隨著物件的建立而存在,因此this必須有物件才能有值;靜態比物件先存在,因為靜態隨著類載入而載入。

38、static的注意事項2:靜態方法只能訪問靜態的成員變數和靜態的成員方法:靜態方法(成員變數:只能訪問靜態變數;成員方法:只能訪問靜態成員方法)非靜態方法(成員變數:可以是靜態的,也可以是非靜態的;成員方法:可是是靜態的成員方法,也可以是非靜態的成員方法)。

39、靜態只能訪問靜態。

40、靜態變數和成員變數的區別:靜態變數也叫類變數,成員變數也叫物件變數。1.所屬不同:(靜態變數屬於類,所以也稱為為類變數;成員變數屬於物件,所以也稱為例項變數(物件變數))2.記憶體中位置不同:(靜態變數儲存於方法區的靜態區;成員變數儲存於堆記憶體)3.記憶體出現時間不同:( 靜態變數隨著類的載入而載入,隨著類的消失而消失;成員變數隨著物件的建立而存在,隨著物件的消失而消失)4.呼叫不同:(靜態變數可以通過類名呼叫,也可以通過物件呼叫;成員變數只能通過對 象名呼叫)。

41、main方法的格式詳細解釋:格式:public static void main(String[] args) {}   解釋:public(被jvm呼叫,訪問許可權足夠大)static(被jvm呼叫,不用建立物件,直接類名訪問)void(被jvm呼叫,不需要給jvm返回值) main(一個通用的名稱,雖然不是關鍵字,但是被jvm識別)String[] args(以前用於接收鍵盤錄入的,args是唯一可以改動的)。

42、如果一個類中所有的方法都是靜態的,需要再多做一步:私有構造方法,目的是不讓其他類建立本類物件 。private 類名(){}
直接用類名.呼叫即可。

43、說明書的製作過程:對工具類加入文件註釋;通過javadoc命令生成說明書:@author(提取作者內容);@version(提取版本內容);javadoc -d 指定的檔案目錄 -author -version ArrayTool.java;@param 引數名稱//形式引數的變數名稱(接收什麼型別的引數)  @return 函式執行完返回的資料。

44、私有的方法是顯示不出來的,即使加了文件註釋。

45、如何使用JDK提供的幫助文件:找到文件,開啟文件;點選顯示,找到索引,出現輸入框;你應該知道你找誰?舉例:Scanner;看這個類的結構(需不需要導包)    成員變數    欄位    構造方法    構造方法    成員方法    方法

46、:Math類概述: 類包含用於執行基本數學運算的方法。特點:由於Math類在java.lang包下,所以不需要導包。 因為它的成員全部是靜態的,所以私有了構造方法。

47、Math.random()會生成大於0.0並且小於1.0的偽隨機數。public static double random():返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。

48、獲取一個1-100之間的隨機數:int number = (int)(Math.random()*100)+1;

49、如果需要重複未知次數才能達到預想結果,可以用無限迴圈,在符合條件的時候用break跳出  while(true){}。

50、在主方法中呼叫本類的靜態方法,可以省略類名.,系統會預設給你加上。如果想呼叫與主方法同類的非靜態方法,用主方法所在類建立物件再呼叫即可。