初始值:
- 成員變量:自動擁有初始值0
- 局部變量:不會有初始值,所以要給初始值
-
特別注意:
同一方法不能有同名局部變量
不同方法中可以有同名局部變量
兩類變量同名時,局部變量具有更高的優(yōu)先級(就近原則)
靜態(tài)方法:
- 注意:
- 靜態(tài)方法能直接調(diào)用同類中的靜態(tài)變量,但不能調(diào)用非靜態(tài)變量扮惦。想要調(diào)用必須先實例化一個對象。
- 而普通方法則都可以調(diào)用。
靜態(tài)初始化塊
- 執(zhí)行優(yōu)先級:
靜態(tài)初始化塊>初始化塊>構(gòu)造函數(shù) -
注意:
靜態(tài)初始化塊只在加載類的時候加載一次胰苏,且只能初始化靜態(tài)變量的值,不能初始化普通變量醇疼。
final 關(guān)鍵字
- final修飾屬性:
該類的這個屬性必須在屬性初始化或者構(gòu)造方法初始化的時候進(jìn)行賦值(只能賦值一次硕并,且只能而且必須在一處,要么屬性初始化秧荆,要么構(gòu)造方法倔毙,不能都進(jìn)行賦值,也不能都不賦值乙濒,以前說屬性會自動賦值0陕赃,但是加了final關(guān)鍵字之后就不會自動賦值) - final修飾變量:
只能在聲明變量時進(jìn)行賦值。(只能賦值一次)即變?yōu)槌A俊?/li>
super關(guān)鍵字
- 意思:父類
- 注意:
1颁股、子類的構(gòu)造方法中必須調(diào)用父類的構(gòu)造方法么库。
2、如果子類的構(gòu)造方法沒有顯式調(diào)用父類的無參的構(gòu)造方法甘有,則系統(tǒng)默認(rèn)調(diào)用父類無參的構(gòu)造方法诉儒。
3、如果顯式調(diào)用父類構(gòu)造方法亏掀,必須在子類構(gòu)造方法的第一行忱反。
4、如果子類構(gòu)造方法中沒有顯式調(diào)用父類的構(gòu)造方法滤愕,因為會默認(rèn)調(diào)用父類的無參構(gòu)造方法温算,而如果父類定義了構(gòu) 造方法而沒有定義無參的構(gòu)造方法,因為定義了有參所以系統(tǒng)不會自動生成一個無參的间影,所以會報錯注竿。 -
注意:
- 一個類只可以繼承一個類(單繼承),但一個類可以實現(xiàn)多個接口。(多繼承)
- 接口內(nèi)容只有常量和抽象方法巩割。
- 系統(tǒng)會自動讓接口變成抽象類胰丁,讓接口內(nèi)的方法變成抽象方法,讓接口內(nèi)的變量變成常量喂分。
類的修飾符
- 分為:可訪問控制符和非訪問控制符兩種锦庸。
- 可訪問控制符是: 公共類修飾符 public
- 非訪問控制符有:抽象類修飾符 abstract
- 最終類修飾符:final
UMl
- 用例圖(Use Case Diagram):從用戶角度描述系統(tǒng)功能。
- 類圖(Class Diagram):描述對象模型中類與類之間的關(guān)系蒲祈。
- 組件圖(Component Diagram):描述系統(tǒng)中各個組件之間的依賴關(guān)系甘萧,還可以描
述組件的源代碼組織結(jié)構(gòu)。 - 部署圖(Deployment Diagram):定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)梆掸。
類圖
- · + :表示public
- · - :表示private
- · #:表示protected(friendly也歸入這類)
?向?qū)ο笾杏?個重要原則『多?組合扬卷、少?繼承』或者說『組合優(yōu)于繼承』。
不同包中相同名字的類的使用方法
import java.util.Date;
import java.sql.*;
java.util.Date deadLine = new java.util.Date();
java.sql.Date today = new java.sql.Date();
包
- 包名的聲明必須出現(xiàn)在第一行;
- 默認(rèn)包沒有名稱;
- 父包與子包:
- 子包需要顯式引用
- 父包不包含子包
包裝類的特點(diǎn):
- 所有的包裝類都是final類型酸钦,不能創(chuàng)建子類
- 包裝類是不可變類怪得,不可強(qiáng)制轉(zhuǎn)換
字符串的split參數(shù)
泛型潛在問題
- 潛在問題一
如果Foo是Bar的?類型(?類或接?實現(xiàn)類),G是?個泛型類卑硫,
那么G<Foo>并不是G<Bar>的?類型徒恋。 - 潛在問題?
drawAll只能接受
List<Shape>,不能夠接受
Shape?類的數(shù)組欢伏。
通配符相關(guān)用法
通配符的一個注意點(diǎn)
Hash集合要求兩個對象用equals()方法比較的結(jié)果為true時入挣,它們的哈希碼也相等。
異常處理原則
- 避免過大的try語句塊硝拧;
- 細(xì)化異常的類型径筏,不要都用Exception;
- 自己能處理的異常不要拋給別人障陶;
- 不要用try-catch實現(xiàn)控制流程的跳轉(zhuǎn)滋恬;
- 盡可能重用已經(jīng)存在的異常類。
- try語句塊不能單獨(dú)存在抱究,catch語句塊可以有一個或多個恢氯,finally語句塊最多一個;
- try-catch-finally均不能單獨(dú)使用媳维;
- 有多個catch塊時酿雪,Java會按順序匹配,如找到匹配則不會繼續(xù)執(zhí)行后面的catch侄刽;
- throw語句后的語句不會被執(zhí)行