郝斌老師java課程的總結,純手打分享,方便複習回顧
第一部分 面向對象
1 封裝
類:對一類事物抽象所得到的一個概念
對象:一個具體的事物
構造函數:
特點:不能有返回值 方法名與類名相同 可以有多個
注意:默認生成無參、無方法體、無返回值的構造函數
自己一旦定義,編譯器將不再生成默認的構造函數
生成一個類對象時能且只能調用其中一個構造函數
static:
凡是static修飾的成員都是靜態成員
靜態成員都是屬於類的
非靜態可以訪問靜態,靜態不可以訪問非靜態
通過類名只能訪問一個類中的非私有靜態成員
私有靜態成員也不可以通過對象名訪問
this:
非靜態方法默認都含有一個this指針
this代表正在調用本方法的對象
final:
修飾類:該類不能被繼承
修飾方法:該方法可以被繼承但不能被重寫
修飾屬性:表示該屬性能且只能賦值一次,並只能選兩種中一種賦值(定
義的同時顯式的初始化、構造函數中初始化)
函數重載:同名不同參,返回值不能作爲是否構成重載的依據
2 繼承
定義:子類繼承了父類成員
注意:
非私有成員纔可以被子類繼承
重寫:重寫方法必須和被重寫方法具有相同的方法名、參數列表、返回
值類型
重寫方法的訪問權限不能小於被重寫方法(多態)
3 多態
定義:同一代碼可以隨上下文的不同而執行不同的操作,即一個父類的引用
既可以指向父類對象,也可以指向子類對象;它可以根據當前時刻指
向的不同,自動調用不同對象的方法
注意:
通過父類的引用只能訪問子類從父類繼承的成員
只有父類的引用本身指向一個子類對象時,纔可以將其強制轉化爲子類
的引用
相關知識:
抽象類:
一個抽象類通常都含有抽象方法
只重寫抽象類部分抽象方法的類也必須標記爲abstract
不可以定義抽象類對象,但抽象類可以實現多態
接口:
接口中方法都是public abstract
不可以定義接口對象,但接口可以實現多態
重寫接口方法時,public不能省
應用:
線程創建、GUI事件處理、容器的組織方式、serializable接口
第二部分 高級部分
1 異常
定義:運行時產生的錯誤
分類:
Error無法處理的異常
Execption可以處理的異常(必須處理:除RuntimeExecption以外的異
常;非必要處理:RuntimeExecption異常)
注意:
finally{...}一定會執行
先捕獲子類異常,再捕獲父類異常,順序不可顛倒
重寫方法拋出異常的範圍不能大於被重寫方法(多態)
假設f方法拋出A異常,則f有兩種方式處理該異常
- throws A
- try{...}catch(){...}
2 線程
定義:一個程序運行時的不同執行路徑
創建線程的方式:
繼承Thread類
實現Runnable接口
線程的同步:
多個線程操作同一個資源,並要求這些操作中的若干個操作不能被中斷
實現:synchronized修飾代碼塊、方法(默認鎖定this)
例子:買票
線程的通信:
有時多個線程需要彼此協作纔可以完成某個功能
實現:wait()、notify()、notifyAll()
例子:生產和消費
3 包
包的產生和運行:
package語句必須是第一條語句
類名是包名和類名的組合
只有在整個包的最上層目錄纔可以運行
同包、不同包的相互訪問:ppt
jar包的生成與使用:普通、可運行jar包的生成
4 GUI
容器和組件的關係:容器是組件,組件不一定是容器
常見佈局管理器:
BorderLayout、FlowLayout、GridLayout
事件模型:
程序員只需做兩件事:告訴事件源可以產生哪些事件、設計處理事件的
事件監聽器
內部類:
在類內部定義的類
內部類的方法可以訪問外部類的所有成員
外部類的方法不可以直接訪問內部類任何成員
內部類產生的原因:類A需要使用類B的所有成員,並不需要被B外其
他類訪問,則可以定義A爲B的內部類;故幾乎不存在直接生成內
部類對象、外部類訪問內部類成員等問題
匿名類:
匿名類是內部類的一種極端表現形式
匿名類可以訪問外部類的所有成員和包裹本匿名類方法中的final類型
的局部變量
5 IO
定義:若一個類用來完成程序和設備之間的數據傳輸,該類稱爲流
流和類的關係:流一定是類,類不一定是流
常用流介紹:
四大基本抽象流:InputStream OutputStream Reader Writer
字節流和字符流:字節流可以處理任意格式文件
字符流只能處理文本格式文件
文件流:FileInputStream FileOutputStream FileReader FileWriter
緩衝流:BufferedInputStream BufferedOutputStream
BufferedReader BufferedWriter
轉化流:InputStreamReader OutputStreamWriter
例子:將鍵盤輸入字符保存到String對象中
數據流:DataInputStream DataOutputStream
數據流可以把基本類型數據的二進制直接讀入、寫出
例子:將long類型數據寫入byte數組,再從數組中讀出
Print流:PrintStream PrintWriter
Print流可以把基本數據類型數據格式化後的字符串輸出
例子:將鍵盤輸入數據寫入A文件,有錯則將出錯信息寫入B文件
Object流:ObjectInputStream ObjectOutputStream
Object流可以把一個對象直接讀入、寫出
6 容器
定義:專門用來存放其他類對象的類
容器和類的關係:容器是類,類不一定是容器
Collection接口:
Set接口:
無序、不能重複
實現類:TreeSet、HashSet
List接口:
有序、可重複
實現類:ArrayList、LinkedList
Map接口:
既保存數據本身,也保存數據主鍵
實現類:HashMap、TreeMap
HashCode()和equals()方法
Collections類:提供對Collection接口實現類的排序、倒置、查找等
功能
Comparable接口:
通過該接口制定對象之間比較的接口
需要進行對象比較排序的場合考慮實現該接口
Iterator接口:
利用接口提供的方法遍歷所有容器中的對象