- 在线时间
- 0 小时
- 最后登录
- 2005-3-31
- 注册时间
- 2005-3-30
- 听众数
- 2
- 收听数
- 0
- 能力
- 0 分
- 体力
- 66 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 24
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 9
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   20% 该用户从未签到
|
而此机制主要针对是工具者而不是应用及程序。
6 O9 |& b3 t0 Q8 @3 A7 P
. v, [+ }8 o# ?: |( K0 V 反射机制中的最重要的部分是允许你检查类的结构.用到的API有:
- K9 V; y8 s8 A2 k' y( k' @8 v& f; T% a' ^! S6 Z
java.lang.reflect.Field 返回字段.
2 D2 G. G4 d; M* P6 | java.reflect.Method 返回方法.3 s! y* z! m) d) ?' A+ F
java.lang.reflect.Constructor 返回参数.4 y4 a/ |0 i) p4 m
& b8 O& i0 f4 U# R
方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案。5 I% Y- m7 g% t; {) R/ j' c e
0 q5 A* @. U5 `& r7 m& s3 }- a 23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface。2 {" S C S- _' z8 r$ N2 l
2 q4 k/ v: s7 F) n
24.接口不是一个类,而是对符合接口要求的类的一套规范。0 p) s5 _) D9 }0 @+ u9 S
6 ], q! I8 V" c
若实现一个接口需要2个步骤: $ X# [5 C {$ F$ d5 Q+ f
9 i, c6 y5 C# t$ o, J+ {
1.声明类需要实现的指定接口。
$ v- n' ^& ?3 u; H) p: ~% h' ^$ N9 n 2.提供接口中的所有方法的定义。2 t6 ?% d3 F* C, y
W& H; t- L. ~/ o. z6 O
声明一个类实现一个接口需要使用implements 关键字- n" d0 I4 [6 _; g0 [5 n
2 K7 Q2 ]1 Y8 R& \4 c" V
class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口.
) E1 ~/ t$ N: a1 n0 N8 S% T/ S2 x1 e z4 t
25.一个类只有一个超类,但一个类能实现多个接口。Java中的一个重要接口:Cloneable
) u% F% Z A& M/ d: `2 L" I6 K8 L8 N8 x+ L+ i6 C- H
26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。
4 q* O) p* J1 b, l) _$ {. n! u2 u5 ~: l9 A5 O9 s0 `
例:ActionListener 接口监听.9 [2 K) d; l4 _+ b
类似的API有:java.swing.JOptionPane) a+ N0 Q2 A; y6 o, Z4 B
/ f# [( O3 c3 x( Q. B) t l
java.swing.Timer0 F, Z0 Z& ~, ]" b! c$ }0 H
java.awt.Tookit
; C7 f# d# \3 v/ e, h3 P- P- X3 t( M* S1 G
27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它。
4 t$ B' I1 k- F8 y/ I& P! N
* C5 P) s2 i( \3 g* e 28.内部类:一个内部类的定义是定义在另一个内部的类。% G7 o0 E# [$ h1 @* J g2 H4 c- o Y
9 { ~: h. X8 l0 o 原因是:
7 a0 k3 K- u, Q; J; ~
) a3 Z; i4 u) v, |4 K2 I2 M- e! i 1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。
" Z; {+ N! k! }4 p2 l: k8 d0 d( h0 c5 l6 N; p5 R
2.对于同一个包中的其他类来说,内部类能够隐藏起来。
) J# Z$ _- B! B: U0 O+ ^% y
5 Z7 D- `" x3 L% W$ k3 a8 ? 3.匿名内部类可以很方便的定义回调。
3 G9 }7 \- ]' \, g0 f/ p/ z* c* \1 i& c! Z5 G j7 Z9 W
4.使用内部类可以非常方便的编写事件驱动程序。
/ ]. Y/ @ H# B2 [8 K, n
% n1 g/ g- F# }4 p ^4 ^ 29.代理类(proxy):
+ a; G9 I+ p2 h3 @2 D
/ \# ~7 o$ g( ]) I1 ]" T 1.指定接口要求所有代码2 g2 m9 ~* W5 f$ {- f
8 V" {1 K; Z+ w D, ^- y1 @ 2.object类定义的所有的方法(toString equals)
1 T6 o: }4 Y& H6 E1 H' X, i
$ ~4 E/ g% r- V' N' `& B" E+ n9 w 30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于Unicode编码中的字符,布尔型。 |
|