第一部分: 基礎知識
第二部分: 物件導向
1.封裝類
對一類事物抽象所得到的乙個概念
物件乙個具體的食物
建構函式
(1)不能有返回值
(2)方法名與類名相同
(3)可以有多個
(4)預設生成無無引數無方法體無返回值的建構函式
自己一旦定義,編譯器將不再生成預設的建構函式
生成乙個類物件是能且只能呼叫其中的乙個建構函式
static
凡是static修飾的成員都是靜態成員
靜態成員都是屬於類的
非靜態的可以訪問靜態的,靜態的不可以訪問非靜態的.
通過類名只能訪問乙個類中的非私有靜態成員.
私有靜態成員也不可以通過物件名訪問
this
非靜態方法預設都含有乙個this指標
this代表正在呼叫本方法的物件
final
修飾類 該類不能被繼承
修飾方法 該方法可以被繼承但不能被重寫
修飾屬性 表示該屬效能且只能被賦一次值,
賦值方式只有兩種:
1.定義的同時顯示初始化
2.建構函式中初始化
函式過載:
同名不同參
返回值不能作為是否構成函式過載的依據
2.繼承
定義子類繼承了父類的成員
注意問題:
非私有成員才可以被子類繼承
重寫:重寫方法比粗和被重寫方法具有方法名稱,引數列表,返回值型別
重寫方法的訪問許可權不能小於被重寫方法
3.多型
定義:同一**可以隨上下文的不同而執行不同的操作
乙個父類的引用既可以指向父類物件也可以指向子類物件,可以根據當前時刻指向的
不同自動呼叫不同物件的方法
注意:通過父類的引用只能訪問子類從父類繼承過來的成員
只有在父類的引用本身指向的就是乙個子類物件時,
我們才可以把父類的引用強制轉換為子類的引用
相關知識:
抽象類乙個抽象類通常都含有抽象方法
只重寫了抽象類部分抽象方法的類也必須的被標記為abstract
不可以定義抽象類物件,但是抽象類可以實現多型
介面介面中的方法都是public abstract
不可以定義介面物件,但介面卻可以實現多型
重寫介面方法時public不能省
舉例:執行緒的建立
事件的處理
容器的組織方式
serializable介面
第三部分: 高階部分
1. 異常
定義:執行時的錯誤
分類無法處理的錯誤
可以處理的異常:
必須處理的異常
是exception子類擔不是runtimeexception 的子類
可處理可不處理的異常
runtimeexception 的子類
注意問題:
finally一定會執行
先捕獲子類異常,再捕獲父類異常,順序不能顛倒
重寫方法的丟擲異常的訪問不能大於被重寫方法丟擲異常的範圍
假設f方法跑出了a異常,則f方法有兩種方式處理a異常:
1.throws a
2.trycatch()
2.執行緒:
定義:乙個程式執行時的不同執行路徑
建立執行緒的方式:
繼承thread類
實現runnable介面
執行緒的同步
多個執行緒操作同乙個資源,並且要求這些操作中的若干個操作不能被中斷
執行緒同步是通過synchronized來實現
synchronized可以修飾兩種:
**塊方法(預設鎖定的是this)
執行緒的通訊
有時多個執行緒只有彼此相互協作才可以完成某個工作
實現方式:
wait和notify() notifyall()
例項:生產消費
3. 包
包的生成與執行:
package語句必須是第一條語句
類名是包名和類名的組合
只有在整個包的最上層目錄才可以執行
同包:不同包的相互訪問:
jar包的生成與jar包的使用
普通jar包的生成
jar -cvf 要生成的jar包的名字.jar *
可執行jar包的生成:
jar cvfm 要生成的jar包的名字 .jar 1.txt *
4.gui
容器和元件的關係:
容器時元件但元件不一定是容器
常見的布局管理器:
borderlayout --frame
flowlayout--panel
gridlayout
事件模型:
明白哪些操作時編譯器自動完成的,哪些操作是程式設計師手動完成的
程式設計師只需要做兩件事:
告訴事件源可以產生哪些事件
設計好可以處理這些事件的事件***
內部類:
在乙個類內部定義的類
內部類的方法可以訪問外部類的所有成員
外部類的方法不可以直接訪問內部類的任何成員
一定要明白產生內部類的原因:
如果乙個類a要使用b類的所有成員
b以外的其他類訪問,則我們可以把a定義成b的內部類
因此幾乎不存在直接生成內部類物件的問題
因此幾乎不存在外部類需要訪問內部類成員的問題
匿名類:
匿名類是內部類的一種極端表現形式
匿名類可以訪問外部類的成員和包裹本匿名類方法中的final類的
5.io流
定義:如果乙個類是用來完成程式和裝置間的資料傳輸,則這個類有個特殊的稱謂 流
流一定是類,類不一定是流
分類輸入流 輸出流
位元組流 字元流
原始流 包裹流
常用流介紹:
四大基本流
inputstream outputstream
reader writer
位元組流和字元流的區別:
位元組流可以處理所有格式的檔案
字元流只能處理文字格式的檔案
檔案流fileinputstream fileoutputstream
filereader filewriter
緩衝流bufferedinputstream bufferedoutputstream
bufferedreader bufferedwriter
緩衝流可以提高資料的傳輸速度
轉化流
outputstreamwriter inputstreamreader
例子:程式設計實現把使用者從鍵盤輸入的字元儲存到乙個string物件中
資料流datainputstream dtatoutputstream
資料流可以把基本型別資料的二進位制直接寫入或讀入
例子:程式設計實現將long型別的資料寫byte陣列中
然後再從byte陣列中把資料讀出類
print流
printstream printwriter
print流可以把基本型別資料格式化後的字串輸出
例子:程式設計實現吧鍵盤輸入的資料寫入a檔案,如果輸入有誤
則把出錯資訊寫入b檔案
object流
objectinputstream objectoutputstream
可以把乙個對性直接寫入讀出
6.容器:
定義:如果乙個類是專門用來存放其他類物件的,則這個有另外乙個特殊的詞叫做 容器
容器和類的關係:
容器一定是類,但類不一定是容器
collection介面:
set 介面
無序,不允許重複
實現類:
treeset hashset
list介面
有序,允許重複
實現類:
arraylist linkedlist
map介面:
即儲存資料本身,也資料的主鍵的一種介面
實現類:
hashmap treemap
hashcode() 和equals()方法
collections類
該類提供了對collection介面顯示類的排序,倒置,查詢等功能
comparable介面
通過該介面的方法可以制定出對性之間比較的標準
凡是需要進行物件的比較排序的場合均可以考慮實現該介面
iterator 介面
利用該介面中的方法可以遍歷元素
好像還有網路程式設計沒有寫?難道不屬於j2se裡的?
馬士兵老師經典J2SE中的經典語錄
1.能力的三個層次 知識學習前人的知識 解決問題的方法 靈活運用學到的知識 解決問題的思路 創造解決問題的方法 2.學習新東西,離不開努力和勤奮 3.能力是慢慢培養上來的,我們可能一口吃成胖子。4.解決問題時,往往在嘗試的過程中收益才是最大的。5.出了錯誤不用怕,除錯就好了。6.遇到錯誤,應及時記錄...
j2se之物件的上轉型物件
上轉型物件是將子類的物件賦值給父類的引用,形如 superclass sup new subclass 屬性,私有方法 靜態方法 final方法都是靜態繫結的,即編譯期確定的。其他方法是動態繫結的,即虛擬機器執行時確定。後者才可能出現override的情況。1 上轉型物件不能操作子類新增的成員變數 ...
J2SE綜合 JAVA異常處理方式的區別和分析
一 內層方法丟擲異常,外層方法捕捉並處理異常 public void methoda catch exceptiontype et public void methodb throws exceptiontype else 在 這個例子中,方法b的頭部中宣告了該方法會丟擲乙個型別為exception...