6 d! T+ v2 o8 d9 ]# K) R 18.object类中的equal和toString方法。 2 B9 g( F- {0 a4 T- I2 ? 7 u5 T# E* N8 P: Y Z equal用于测试一个对象是否同另一个对象相等。 X4 }. p& m1 G% Q6 }
) R+ |- A, ?6 g7 j6 h
toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示. 4 p5 T. J \) F" d \0 U: q$ K$ Q
- o4 ~" x+ ~$ e) V5 e. D (toString 方法是一个很重要的方法) $ x: T- d, x- z6 i; `5 D+ I 5 n3 c# a$ d3 k6 Y2 X! d 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。 4 R8 ]" w/ q" K' P N9 ^: a! N- @ 7 R; T x1 c# e3 R6 n% t) `7 l 20.数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小。 ) } D* c* d* C) {7 E! y& k# U5 f" s
21.class类 object类中的getclass方法返回ckass类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。 8 `' q" v2 O6 }( ^7 J& {& I. A' W* L( |9 ~ l" n4 y6 {
22.class类为编写可动态操纵java代码的程序提供了强大的功能反射,这项功能为JavaBeans特别有用,使用反射Java能支持VB程序员习惯使用的工具。 0 g, x" ]$ Z0 T1 w) k6 }' E, |
- u9 `; d0 v5 ]; L7 C
能够分析类能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射机制十分强大. " C7 T. x& |! l; J7 V) _' a
: {9 G' D7 m* {( Q! T
1.在运行时分析类的能力。 5 C% P) N5 u' R! X0 c8 t
3 ~4 r* P0 A# D2 k5 D 2.在运行时探察类的对象。 * @) i: {" _9 C( @9 ^; z
4 y2 R# h5 ^7 @4 Y' R
3.实现通用数组操纵代码。 & ^* } \- `' n# n# c" h" ]/ E' m4 Z* K- p! M) x
4.提供方法对象。 8 K9 F; z: l% b$ y% H6 t9 f 而此机制主要针对是工具者而不是应用及程序。 # Y Q9 B6 \1 ~. B. t' u* }+ O! E8 O; a, o6 Y9 A N% D, ~0 { y
反射机制中的最重要的部分是允许你检查类的结构.用到的API有: $ X* S% `! m9 }7 Q/ K+ h" o$ G/ h. L: J) h9 ~: c8 Z) S2 p
java.lang.reflect.Field 返回字段. l' @; E7 }, d6 @
! V" d Q- @2 z3 D( _ java.reflect.Method 返回方法. 3 J' C. Q4 G) I& B. v ! S* W4 Q/ M- L& L2 z/ w, a9 T3 \) [ java.lang.reflect.Constructor 返回参数. 7 v w3 g7 `' F0 y
, f5 o W- J6 ~& P0 e2 Y N+ ~5 @ 方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案。 9 u2 p* B* K, Z
' u1 i! c3 \7 m4 t6 ^4 r$ d, g- e 23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface。 # \( F+ u9 {4 w4 q! s; ^2 o' [6 C5 u9 k
24.接口不是一个类,而是对符合接口要求的类的一套规范。 6 T. f9 Y8 }4 Y4 |) U: ^: K' F& D! w6 O. E' B
若实现一个接口需要2个步骤: 1 s9 i$ N j; u/ L/ [0 z& y, Q) g& n+ s1 \! f9 N/ G" K% S% \; B
1.声明类需要实现的指定接口。 9 Q" W6 `7 S( \: @. d+ n" w2 \" A& ]$ p. v( l
2.提供接口中的所有方法的定义。 # j( Z" n( X: B: Z, V ( j" m0 o; @+ V3 N8 t0 T* h* d 声明一个类实现一个接口需要使用implements 关键字 / g* v9 M, ]+ u5 i( C' l' Z3 L0 r% |
; ` M5 g( ~% |8 s6 K class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口. 1 N \1 g! a4 b/ O! q: M: A& l* {0 C7 x
25.一个类只有一个超类,但一个类能实现多个接口。Java中的一个重要接口:Cloneable 3 o; |3 P0 W( R# P
w [1 y( M( j9 R8 `
26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。 F3 X, ]9 e8 ^0 Z$ b
) S' X# S' I, V# T6 c" l 例:ActionListener 接口监听. - \3 w) N: ]$ C' R( {; r5 h ' V- n) V7 r8 Z, ?* v5 D; ` 类似的API有:java.swing.JOptionPane # T. D0 ^" ?. J& j/ K
0 B& x. U' O' r8 W$ K$ n java.swing.Timer * J& w) D3 ~! w; k v
1 v! R# D% ? \ java.awt.Tookit 3 N6 R) ~$ N6 u: p/ ~ 3 d" q N7 p5 J 27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它。 D6 W7 \/ p( z8 F7 }
4 K3 C" [& [4 a; F
28.内部类:一个内部类的定义是定义在另一个内部的类。 * G9 ~. s0 h! {* v* L7 X7 l" ~/ ?( m8 K" f! {0 y/ l$ P P- o
原因是: * X6 X. ?/ s; N( y, U$ _, e+ }3 L $ z) G# O! k: E$ o 1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。 ( P) Q2 [6 O; A) a) l
; k; a9 F V+ J4 T: j" G9 e
2.对于同一个包中的其他类来说,内部类能够隐藏起来。 3 z/ [' a0 I4 J' I * x9 Z3 [$ C A5 t2 z# ` 3.匿名内部类可以很方便的定义回调。 # c4 @+ k' d. K0 e4 t/ b* t , A. ]/ x9 I, j+ V; [4 m* E" ~ 4.使用内部类可以非常方便的编写事件驱动程序。 : z b% M& ~" H) r! R
& J2 }6 e9 r8 t* X: p% \& G( m) p
29.代理类(proxy): & i( q, b4 y! g o% R \& P- \7 n) l5 U7 L3 T6 M/ h 1.指定接口要求所有代码 ) r' Z7 z- s( X6 D% s$ Z: h, E) ~4 _$ B9 g" _3 y: x
2.object类定义的所有的方法(toString equals) % |. v1 |9 ?$ D/ I, _0 u, s ) J- Z- t& |. k' D, M/ @ 30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于Unicode编码中的字符,布尔型。