13.動態綁定:調用對象方法的機制。
(1)編譯器檢查對象聲明的類型和方法名。
(2)編譯器檢查方法調用的參數類型。
(3)靜態綁定:若方法類型為priavte static final 編譯器會準確知道該調用哪個方法。 (4)當程序運行并且使用動態綁定來調用一個方法時,那么虛擬機必須調用x所指向的對象的實際類型相匹配的方法版本。
(5)動態綁定:是很重要的特性,它能使程序變得可擴展而不需要重編譯已存代碼。
14.final類:為防止他人從你的類上派生新類,此類是不可擴展的。
15.動態調用比靜態調用花費的時間要長。
16.抽象類:規定一個或多個抽象方法的類本身必須定義為abstract。
例:
public abstract string getDescripition
17.Java中的每一個類都是從Object類擴展而來的。
18.object類中的equal和toString方法。
equal用于測試一個對象是否同另一個對象相等。
toString返回一個代表該對象的字符串,幾乎每一個類都會重載該方法,以便返回當前狀態的正確表示。(toString 方法是一個很重要的方法)
19.通用編程:任何類類型的所有值都可以同object類性的變量來代替。
20.數組列表:ArrayList動態數組列表,是一個類庫,定義在java.uitl包中,可自動調節數組的大小。
21.class類object類中的getclass方法返回ckass類型的一個實例,程序啟動時包含在main方法的類會被加載,虛擬機要加載他需要的所有類,每一個加載的類都要加載它需要的類。
22.class類為編寫可動態操縱java代碼的程序提供了強大的功能反射,這項功能為JavaBeans特別有用,使用反射Java能支持VB程序員習慣使用的工具。
能夠分析類能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射機制十分強大。
1).在運行時分析類的能力。
2).在運行時探察類的對象。
3).實現通用數組操縱代碼。
4).提供方法對象。
而此機制主要針對是工具者而不是應用及程序。 反射機制中的最重要的部分是允許你檢查類的結構.用到的API有:
java.lang.reflect.Field //返回字段.
java.reflect.Method //返回方法.
java.lang.reflect.Constructor //返回參數.
方法指針:java沒有方法指針,把一個方法的地址傳給另一個方法,可以在后面調用它,而接口是更好的解決方案。
23.接口(Interface)說明類該做什么而不指定如何去做,一個類可以實現一個或多個interface。
24.接口不是一個類,而是對符合接口要求的類的一套規范。
若實現一個接口需要2個步驟:
1.聲明類需要實現的指定接口。
2.提供接口中的所有方法的定義。
聲明一個類實現一個接口需要使用implements 關鍵字 class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是類,不能用new實例化一個接口。
25.一個類只有一個超類,但一個類能實現多個接口。Java中的一個重要接口:Cloneable
26.接口和回調.編程一個常用的模式是回調模式,在這種模式中你可以指定當一個特定時間發生時回調對象上的方法。
例:ActionListener 接口監聽.
類似的API有:
java.swing.JOptionPane
java.swing.Timer
java.awt.Tookit
27.對象clone:clone方法是object一個保護方法,這意味著你的代碼不能簡單的調用它。
28.內部類:一個內部類的定義是定義在另一個內部的類。
原因是:
1.一個內部類的對象能夠訪問創建它的對象的實現,包括私有數據。
2.對于同一個包中的其他類來說,內部類能夠隱藏起來。
3.匿名內部類可以很方便的定義回調。
4.使用內部類可以非常方便的編寫事件驅動程序。
29.代理類(proxy):
1.指定接口要求所有代碼
2.object類定義的所有的方法(toString equals)
30.數據類型:Java是強調類型的語言,每個變量都必須先申明它都類型,java中總共有8個基本類型。4種是整型,2種是浮點型,一種是字符型,被用于Unicode編碼中的字符,布爾型。