2.類與對象
P_41
全局對象表示方法:加上public, static, final;
Java程序中如果類非常多時抠璃,可以包裝成jar文件
3.primitive主數(shù)據(jù)類型和引用
P_51
數(shù)據(jù)類型:boolean, char(0 ~ 65535), byte(-128 ~ 127)
4.方法操作實例變量
P_78
Java中所傳遞的所有東西都是值,方法傳入的參數(shù)是引用對象的變量時,引用對象的變量所攜帶的時遠程控制而不是對象本身肥隆,實際傳入的是遠程控制的拷貝。
如果有混合不同類型的值要返回時怎顾,需要用到ArrayList
P_81
將實例變量標記為private捉撮,將getter和setter標記為public
P_84
實例變量永遠有默認值,局部變量沒有默認值
P_86
== 判斷兩個引用對象是否引用到堆上的同一個對象
equals() 判斷兩個對象是否真的相等
7.繼承與多態(tài)
方法的覆蓋 Override野舶,不能更改存取權(quán)限
方法的重載 Overload, 不能只改變返回值類型易迹,可以更改存取權(quán)限
8.接口與抽象類
* 接口 interface
* 1.解決多重繼承的問題。把全部的方法設(shè)為抽象的
* 2.接口方法是抽象的必須以;結(jié)尾平道,沒有內(nèi)容
* 3.>當你把一個類當做多態(tài)類型運用時睹欲,相同的類型必定來自同一個繼承樹,
* 而且必須是該多態(tài)類型的子類
* >當你使用接口來作為多態(tài)類型時一屋,對象可以來自任何地方窘疮。
* 該對象必須是來自有實現(xiàn)此接口的類
* 4.將對象的狀態(tài)保存在文件中,實現(xiàn)Serializable
* 讓對象的方法以單獨的線程執(zhí)行冀墨,實現(xiàn)Runnable
* ########### 1.抽象類 abstract
* 1.抽象的類代表此類必須要被extend過闸衫,抽象的方法代表此方法一定要被覆蓋過
* 2.抽象的方法沒有實體
* 3.不能在非抽象類中擁有抽象方法
* 4.在第一個繼承樹下的第一個具體類必須實現(xiàn)所有抽象的方法
* 5.如果聲明出一個抽象的方法,就必須將類也標記為抽象的诽嘉。不能在非抽象類中擁有抽象方法
* 6.抽象類可以帶有抽象和非抽象的方法
* abstract Animal --> abstract Canine --> Dog
* Canine可以實現(xiàn)Animal的抽象方法蔚出,讓Dog不必實現(xiàn)這個部分
*
* 抽象方法的意義:就算無法實現(xiàn)出方法的內(nèi)容弟翘,但還是可以定義出一組子型共同的協(xié)議
*
* ########### 2.根類 Object
* 所有類均繼承于Object, 不是抽象類
* 1.包含的方法:equals(), getClass(), hashCode(), toString()
* 2.Object實例的應(yīng)用時機:線程的同步化
* 3.用途:1.作為多態(tài)讓方法可以應(yīng)付多種類型的機制。
* 2.提供Java在執(zhí)行期對任何對象都有需要的方法的實現(xiàn)程序代碼(讓所有的類都繼承到)骄酗。
* 有一部分的方法與線程有關(guān)稀余。
*
* ########### 3.運算符 instanceof
* if (o instanceof Dog) {
* Dog d = (Dog)o;
* }
9.構(gòu)造器與垃圾收集器
1.如果我們沒有調(diào)用super(), 編譯器會幫我們加上super()調(diào)用
2.每個構(gòu)造函數(shù)可以選擇調(diào)用this()或super(),必須是第一行語句
3.null是代表“空”的字節(jié)組合趋翻。
4.對null引用使用圓點運算符會在執(zhí)行期遇到NullPointerException
10.數(shù)字與靜態(tài)
1.使類不能被初始化:
> 使用abstract標記類
> 使用私有的構(gòu)造函數(shù)
2.取得新對象的方法: new, 序列化(deserialization), Java Reflection API
3.靜態(tài)的方法不能調(diào)用非靜態(tài)的變量睛琳,方法
4.可以用 引用變量 代替 類名稱 調(diào)用 靜態(tài)方法。但不推薦
> Duck d = new Duck();
String[] s = { };
d.main(s);
5.靜態(tài)變量
> 被同類的所有實例共享的變量
> 靜態(tài)變量會在該類的 任何對象創(chuàng)建之前踏烙,任何靜態(tài)方法執(zhí)行之前 就完成初始化
6.public static final double PI = 3.14...
> public 可供各方讀取
> static 不需要Math實例
> final 一個被標記為final的變量代表它一旦被初始化之后就不會改動
> 常熟變量的名稱應(yīng)該要都是大寫字母
7.final 值一旦被賦值就不能更改顶岸。
的方法不能被覆蓋益眉。
的類不能被繼承。
> 類被標記為final,方法就不用標記了
> 如果類只有靜態(tài)的方法愈腾,可將構(gòu)造函數(shù)標記為 private 的以避免初始化
8.Math random(), abs(), round(), min(,), max(,)
9.Boolean, Character, Byte, Short, Integer, Long, Float, Double
* 靜態(tài)初始化程序 static initializer 是一段在加載類時會執(zhí)行的程序代碼,
* 它會在其他程序可以使用該類之前就執(zhí)行堡僻,所以很適合放靜態(tài)final變量的起始程序
P_299
格式化
P_301
常用:%d, %f, %x, %c
日期:%tc, %tr, %tA %tB %td
P_307
靜態(tài)import
11.異常處理
P_343
MidiEvent
12.圖形用戶接口
* 以add開頭的Listener且取用listener接口參數(shù)的方法观谦,
* eg. addKeyListener(KeyListener k)
* 有這種 method 的 class 就是 KeyEvent 的來源
Graphics: drawImage, drawLine, drawPolygon, drawRect, drawOval, fillRect, fillRoundRect, setColor
Graphics2D: fill3DRect, draw3DRect, rotate, scale, sheer, transform, setRenderingHints
P_368
總結(jié)