歡迎來到瑞文網(wǎng)!

          Java基礎(chǔ)知識點總結(jié)(2)

          【www.laquenouille.com - 學(xué)習(xí)總結(jié)】

            4.1定義一個類

            *使用class關(guān)鍵字定義類,注意類名大寫

            *成員屬性:成員屬性不賦值會有默認(rèn)值(默認(rèn)值規(guī)則參考PPT)

            *成員方法

            *構(gòu)造方法:沒有任何返回值,名字與類名一樣,構(gòu)造方法的本意是用來初始化對象(初始化對象的屬性值)

            4.2 實例化對象:Student s = new Student();

            *使用new + 構(gòu)造方法實例化對象

            *new 在堆中開辟了對象的空間,并且給屬性賦上默認(rèn)值

            *接下來調(diào)用構(gòu)造方法,執(zhí)行構(gòu)造方法中的代碼

            *最后返回對象的引用

            4.3區(qū)分引用類型與基本數(shù)據(jù)類型

            *引用類型的變量在內(nèi)存中有兩塊區(qū)域,一塊是引用本身,另一塊是引用所指向的對象

            *基本數(shù)據(jù)類型在內(nèi)存中只有一塊空間:里面存著值

            4.4如何操作對象:使用.操作符

            *使用對象名.屬性操作對象的屬性(如:stu.age = 18;)

            *使用對象名.方法調(diào)用對象的方法(如:stu.study());

            *this:每個對象都有this,this是指向本身的引用,代表本身

            4.5. 必須能夠獨立寫出Point3D的代碼(題目在PPT上)

            5. 訪問控制,方法定義與調(diào)用,重載,方法重寫5.1 訪問控制5.1.1 package包的使用

            *使用package 定義包:package只能放在代碼的第一行

            *import:導(dǎo)包,可以到入包下所有import java.io.*;可以導(dǎo)入具體的一個類import java.io.Reader;

            *包的作用:1,分類;2,隱藏(封裝的作用),3,便于管理

            *java本身提供了一些包:java.lang(核心類,此包如需要引入),java.util(集合框架以及其他常用類),java.io(輸入輸出),java.awt,javax.swing(圖形)

            5.1.2 繼承(簡單概念):使用extends關(guān)鍵字表示繼承

            *子類繼承父類的所有屬性

            *子類繼承父類除private(非同包的時候也除默認(rèn)的方法)外的所有方法

            *子類對象擁有super引用,表示父類的引用,可以使用super明確的調(diào)用父類的方法或?qū)傩?/p>

            5.1.3四個訪問級別,從大到小:public ,protected,默認(rèn),private

            *注意訪問級別是針對類來講的,不是針對對象!!!!!!!

            *注意類的訪問修飾符只能使用public 或默認(rèn)

            *學(xué)了訪問控制后:類的屬性都寫private,通過set/get方法對屬性進(jìn)行賦值,取值

            5.2 重載與重寫

            1.判斷是否是重載,或者是否是重寫,如果不是重寫或者重載,就不受重寫重載規(guī)則的約束

            5.2.1重載:一個類當(dāng)中,有方法名相同,參數(shù)不同的方法,稱為重載

            *不能只改返回值:不能根據(jù)方法的返回進(jìn)行重載

            5.2.2重寫:在繼承當(dāng)中,子類將父類的方法重新寫了一遍:重寫的方法與被重寫的方法擁有相同的方法簽名(返回值類型,方法名,參數(shù)列數(shù))

            *.重寫的方法能夠改變被重寫的方法的訪問級別,注意只能是相等或者擴大

            *.重寫的方法不能拋出比被重寫方法更多的異常,注意只能縮小異常的范圍

            *.如果被重寫的方法是具體的,重寫之后不能改為abstract

            5.3 類與對象的生命周期

            5.3.1類與對象的初始化過程:

            *靜態(tài)屬性先初始化,而且僅僅初始化一次

            *首先給靜態(tài)屬性進(jìn)行聲明,并賦默認(rèn)值,然后代碼從上往下執(zhí)行靜態(tài)代碼塊或靜態(tài)賦值

            *每創(chuàng)建一個對象,就先實例化成員屬性:首先給成員屬性聲明,賦默認(rèn)值,然后.執(zhí)行賦值語句

            *成員屬性初始化后再調(diào)用構(gòu)造方法

            5.3.2垃圾回收機制

            *java虛擬使用垃圾回收機制進(jìn)行垃圾回收

            *垃圾回收本身是一個線程(當(dāng)內(nèi)存不夠用的時候,一般會進(jìn)行垃圾回收)

            *垃圾回收不能通過程序來調(diào)用,僅僅能夠通過System.gc()建議虛擬機進(jìn)行垃圾回收

            *當(dāng)進(jìn)行垃圾回收時,會調(diào)用對象的finalize方法

            5.4 單例模式:一個類僅僅能有一個實例(設(shè)計模式的一種)

            *構(gòu)造方法必須為私有的

            *提供靜態(tài)的方法來獲得對象

            *提供靜態(tài)的屬性,該屬性是該類的一個對象

            6. 繼承,抽象類,接口

            6.1 繼承:

            6.1.1 繼承的語法:使用extends關(guān)鍵字表示繼承

            *子類繼承父類所有的屬性

            *私有方法不能被繼承

            *super關(guān)鍵字表示父類的引用,可以用super來調(diào)用父類的方法或?qū)傩?/p>

            6.2.2 繼承中的構(gòu)造方法:了解下面的知識點以及實例化對象時代碼的執(zhí)行過程

            *子類的構(gòu)造過程必須調(diào)用其基類的構(gòu)造方法

            *子類可以在自己的構(gòu)造過程中使用super (arg_list)來調(diào)用基類的構(gòu)造方法

            *如果調(diào)用super,必須寫在子類構(gòu)造方法的第一行

            *可以使用this(argument_list)調(diào)用本類的另外的構(gòu)造方法

            *如果子類的構(gòu)造方法中沒有顯示的調(diào)用基類的構(gòu)造方法,系統(tǒng)默認(rèn)調(diào)用基類無參數(shù)的構(gòu)造方法

            *如果子類構(gòu)造方法中既沒有顯式的調(diào)用基類構(gòu)造方法,基類中又沒有無參數(shù)的構(gòu)造方法,編譯出錯

            6.3.3 對象的轉(zhuǎn)型

            *一個基類的引用類型變量可以指向其子類的對象

            *一個基類的引用不可以訪問其子類對象新增的成員

            *可以使用instanceof 關(guān)鍵字來判斷一個引用類型變量所指向的對象是否是制定的類型

            *子類的對象可以當(dāng)作基類的對象來使用稱作向上轉(zhuǎn)型,反之稱為向下轉(zhuǎn)型

            *子類可以當(dāng)成父類來使用,無需顯示轉(zhuǎn)換

            *父類引用轉(zhuǎn)換為子類引用要進(jìn)行強制轉(zhuǎn)換

            *注意:不兼容的類型之間不能進(jìn)行相互轉(zhuǎn)換(只有具有直接或間接父子關(guān)系的類才是兼容的類型),否則編譯時會報錯

            *注意:兼容類型之間的轉(zhuǎn)換要看對象的實際類型,因此向下轉(zhuǎn)化時最好先用instanceof來判斷是否是某個類型,在轉(zhuǎn)換,以免報報錯

            6.4.4 多態(tài):也稱運行時綁定:一般是指父類的引用指向子類對象,通過父類的引用調(diào)用被子類重寫的方法,這個時候執(zhí)行的是子類的方法

            *一句話總結(jié)多態(tài):對象實際是什么類型就調(diào)用什么類型的方法

            *多態(tài)成立的條件:1,要有繼承。2,要有重寫。3,必須有父類引用指向子類對象。

            6.2 抽象類:用abstract修飾的類稱為抽象類(抽象的本意是不具體)

            1.抽象方法不能有方法體

            2.抽象類不能被實例化。

            3.含有抽象方法的類必須被聲明為抽象類,

            4.子類繼承抽象類,必須被重寫父類的抽象方法,否則本身也必須被聲明為抽象類

            5.抽象類中的方法和屬性沒有其他規(guī)則來約束,抽象類中沒有抽象的方法是可以的,抽象類中可以有非抽象的方法和屬性

            6.3 static :靜態(tài)關(guān)鍵字

            6.3.1static屬性:在類中,用static申明的成員變量叫靜態(tài)變量,他為該類的公用變量,在第一使用時被初始化,對于該類的所有對象來說,static成員變量只有一份

            6.3.2 static方法:用static聲明的方法為靜態(tài)方法,在調(diào)用該方法時,不會將對象的引用傳遞給它,所以static方法中不可以訪問非static的成員。

            *靜態(tài)方法中不能訪問非靜態(tài)成員

            *靜態(tài)成員方法沒有this引用

            *可以通過類名(不需要實例化)或?qū)ο笠脕碓L問靜態(tài)成員

            6.4 final關(guān)鍵字:

            final表示最終的意思

            *final的變量的值不能夠被改變

            *final的成員變量

            *final的局部變量(形參)

            *final的方法不能夠被重寫

            *final的類不能夠被繼承

            6.5 接口:interface

            1. 使用interface定義一個接口,使用implements實現(xiàn)一個接口

            2. 接口中的屬性只能為public static final類型(靜態(tài)常量)

            3. 接口中的方法只能為public abstract類型

            4. 一個類可以實現(xiàn)多個接口,但只能繼承一個類

            5. 接口也可以繼承接口

            7. 異常處理

            java的異常處理機制

            異常的關(guān)鍵字Exception

            try,catch,finally,throw,throws關(guān)鍵字

            7.1什么是異常,為什么要引入異常

            *java程序運行時出錯,java就拋出異常,程序立即終止(也可以說程序崩潰)

            *java將錯誤信息封裝在異常對象里拋出

            *學(xué)會查看異常的信息:異常的名字,異常的信息,程序拋異常的位置

            *java引入異常處理機制,是防止程序出錯崩潰

            7.2java的異常的分類

            *java的拋出的錯誤用異常類來表示,java擁有一個異常體系(有許多異常類,并且相互之間具有關(guān)系)

            *java里面的所有異常都是Throwable的子類

            *java虛擬機的異常是Error的子類,一般不需進(jìn)行處理(因為沒法進(jìn)行處理)

            *除Error之外還有Exception,Exception分為兩類:RuntimeException(運行時異常),被檢查異常(除了RuntimeException都是被檢查異常)

            *RuntimeException(運行時異常,可以不捕獲或聲明拋出,編譯不會報錯,一般是控制不當(dāng)造成的),可檢查異常(必須捕獲或聲明拋出,這類異常通常需要檢測并處理,一般使用資源時造成的)

            *幾個常見的異常:NullPointerException(空指針),IndexOutOfBoundsException(索引越界),SQLException(數(shù)據(jù)庫異常),IOException(文件異常)

            7.3異常的處理方式

            *使用try,catch,finally進(jìn)行處理

            *不處理,使用throws,throw交給別人來處理

            7.4try,catch,finally中程序的運行過程

            *嘗試執(zhí)行try里面的語句

            *一次運行當(dāng)中最多執(zhí)行一個catch塊,如果沒有拋出異常,catch塊不執(zhí)行

            *finally總會執(zhí)行,不管有沒有拋出異常

            *如果try塊里面有return語句,finally也會執(zhí)行

            7.5區(qū)分RuntimeException與被檢查異常

            *RuntimeException不需要捕獲或聲明拋出(但是如果你捕獲或聲明拋出也不會有錯)

            *被檢查異常必須要捕獲或者聲明拋出

          熱門文章
          国产精品好爽好紧好大_亚洲男人综合久久综合_欧美福利电影a在线播放www_国产精品99久久精品无码

                  亚洲一区二区三区日韩91 | 日本久久国产精品 | 亚洲国产一区二区波多野结衣 | 亚洲中文久久精品一码 | 午夜福利久久野草 | 久久久久久国产精选Av香蕉 |