java基礎二

1. 方法(函數):爲了完成特定功能的代碼塊,提高代碼的複用性。
方法格式:
               修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) {
            方法體語句;
            return 返回值;
        }
注意:只能在函數中調用函數,不能再函數中定義函數。

2.數據:是存儲同一種數據類型多個元素的集合,也可以看一個容器。(注意數組元素類型必須相同,容器可以存儲不同的元素,但是一般不會這樣使用)。

數組格式:數據類型[] 數組名 = new 數據類型[數組的長度];

數組的初始化:就是爲數組開闢連續的內存空間,並且爲每個數組元素賦予值。

3.Java 中的內存分配以及棧和堆的區別:
棧:用來存儲局部變量    堆:存儲 new 出來的對象或數組    

4.面向對象:
特點:a.是一種更符合我們思想習慣的思想    b.可以將複雜的事情簡單化   c.將我們從執行者變成了指揮者,角色發生了轉換

特徵:封裝 繼承 多態    

5.類與對象概述:
類:是一組相關的屬性和行爲的集合    對象:是該類事物的具體體現

6.成員變量和局部變量的區別:
成員變量:在類中方法外;成員變量屬於對象,存儲在棧內存中;成員變量隨着對象的創建而存在,隨着對象的消失而消失;成員變量有默認初始化值。

局部變量:在方法定義中或者方法聲明上;局部變量屬於方法,方法進棧內存;局部變量隨着方法的調用而存在,隨着方法的調用完畢而消失;局部變量沒有默認值初始化值,必須定義,賦值,然後才能使用。

注意:局部變量名稱可以和成員變量名稱一樣,在方法中使用的時候,採用的是就近原則;基本的數據類型包括:byte,short,int,long,float,double,char,boolean;引用基本數據類型包括:數組,接口,類,枚舉。

7.匿名對象:
沒有名字的對象,僅僅只調用一次。

注意:調用多次的時候,不適合使用匿名類;匿名對象調用完畢就是垃圾;可以被垃圾回收器回收,同時匿名對象可以作爲實際參數傳遞。

8.封裝:
是指隱藏對象的屬性和實現細節,僅僅對外提供公共訪問方式。

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

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

9.關鍵字 private:
特點:是一個權限修飾符;可以修飾成員變量,成員方法;被其修飾的成員只能在本類中被訪問

10.關鍵字 this:
特點:代表當前對象的引用,並且可以用來區分成員變量與局部變量的重名;

注意:構造函數之間調用,只能使用 this 關鍵字。並且 this 代碼只能放在構造函數的第一行。

11.構造方法 Constructor:
new 出新對象的時候,對對象屬性進行初始化賦值。

特點:方法名和類名是相同的;沒有返回類型;沒有具體的返回值 return。

構造方法的重載:方法名相同;傳遞參數不一樣,類型不一樣而且數目也可以不一樣。

注意:如果我們自己沒有編寫類的構造函數,則系統會自動提供一個無參數的構造函數;如果我們提供了構造函數,系統就不會再提供默認的無參數構造函數;這個時候,如果我們還要使用無參數的構造函數,則必須自己重新編寫;最後自己總是重寫無參數構造函數。

12.關鍵字 static :
特點:static 修飾符修飾的變量或方法叫做靜態變量或靜態方法;靜態變量或靜態方法隨着類的加載而加載。

靜態變量和靜態方法優先於對象存在;一個類的所有個對象共享同一個靜態變量;也可以通過類名直接進行訪問。

注意:靜態是隨着類的加載而加載的,this 是隨着對象的創建而存在的;靜態函數只能訪問靜態變量和靜態函數,簡單說就是靜態只能訪問靜態。

13.靜態變量和成員變量:
靜態變量屬於類,所以又叫做類變量;隨着類的加載而加載,隨着類的消失而消失;存放在方法區;可以通過類名+靜態變量名來調用靜態變量,也可以通過對象名+靜態變量來調用。

14.主函數:
是一個特殊的函數,作爲程序的入口;可以被 jvm 調用。

主函數的定義:
    public : 代表該函數訪問權限是最大的
    static : 代表主函數隨着類的加載就已經存在了
    void : 代表主函數沒有返回類型
    main : 不是關鍵字,是一個特殊的單詞。可以被 jvm 識別
    (String args[]) : 函數的參數,參數類型是一個數組。該數組中元素是字符串,字符串類型數組

    主函數的固定格式的: 被 jvm 識別

15. 編寫 java 文檔說明書:   在dos下的命令爲:javadoc -d 路徑 -author -version ArrayTool.java      注意這個ArrayTool.java必須是 public 修飾

16.如何使用API 文檔:
找到文檔,打開文檔;點擊顯示,找到索引,出現輸入框;你應該知道你找誰?舉例:Scanner;看這個類的結構(需不需要導包)。

17.代碼塊:
使用{}括起來的代碼被稱爲代碼塊;代碼塊可以分爲以下幾種:

局部代碼塊:在方法中出現,限定變量生命週期,及早釋放,提高內存利用率。

靜態代碼塊:在類中方法外使用,使用關鍵字 static 修飾,用於給類進行初始化,在加載的類的時候執行,並且執行一次。

構造代碼塊:在類中方法外使用,多個構造方法共同的代碼放在一起;每次調用構造函數都執行構造代碼塊,並且在構造函數之前執行;一般用於驅動加載。

18.繼承:
通過關鍵字 extends 來實現繼承

好處:提高了代碼的複用性;提高了代碼的維護性;讓類與類之間產生了關係,這也是實現多態的前提。

壞處:類的耦合性增強了(注意項目開發原則:高內聚,低耦合;內聚就是類本身實現的功能;耦合就是類與類之間的關係)。

特點:Java 只支持單繼承,不支持多繼承,因爲多繼承容易帶來安全隱患:當多個父類中定義了相同功能時,當功能內容不一致的時候,不確定調用那個具體功能(但是卻可以通過 extends A , B 來實現繼承多個父類,從而達到多繼承);也支持多層繼承。

注意:子類繼承父類只能繼承父類的非私有部分(成員變量,方法);子類不能繼承父類的構造函數,但是可以通過關鍵字 super 來調用父類構造函數;不應該爲了實現部分功能繼承父類;
子類的所有構造函數執行之前都會調用父類的無參構造函數,而且必須是第一行。

19.方法重寫:
子父類出現了一個一模一樣的函數

特點:當子類需要一個和父類功能相同的函數功能時,但是子類又具有自己的一些特有功能方法。這個時候子類中就需要重寫父類函數。

注意:父類中的 private 方法不能被子類進行重寫;子類重寫後的函數不能低於父類中函數的權限;父類中函數是靜態的,則子類重寫函數也必須是靜態的;子類重寫父類函數時,最好自己直接去 copy,儘量不要自己編寫,因爲這樣很容易出現單詞編寫錯誤。

20.關鍵字 final:

特點:被 final 修飾的函數不能被子類重寫;被 final 修飾的變量不能再被重新賦值 ; 被 final 修飾的類,不能被子類繼承。

21.關鍵字 abstract 抽象:
抽象類和一般類沒有太大的不同,該如何描述事物就如何描述事物,只不過,事物當中有些看不懂的東西。這些不確定的部分,也是該事物的功能,需要明確出現,但是無法定義主體。通過抽象來完成。   抽象類比一般類多了抽象方法,並且抽象類不可以實例化。

注意:抽象類是不能 new 出新對象的;子類繼承了抽象類,則必須實現抽象類中的抽象方法,如果只是實現了部分抽象方法則該子類也是抽象類;抽象類中可以有非抽象方法,如果子類有抽象方法,則該類必須使用 abstract 抽象修飾。

22. interface 接口:初期理解,可以理解爲一個特殊的抽象類,當抽象類中的方法都是抽象時,那麼該類可以通過接口的形式來表示   class 定義類  interface 定義接口

注意:接口可以被類多實現;接口與接口之間可以是繼承關係;接口之間可以是多繼承關係。





發佈了39 篇原創文章 · 獲贊 10 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章