a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 100|回复: 0

[基础知识] Java学习知识点要求(18)

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
Java学习知识点要求(18), S9 Z0 V% j0 p2 w1 u
26、内部类和匿名类及其使用  k  m' r  E# f' t
(1)内部类是指在一个外部类的内部再定义一个类。
, C* v6 D: `. n; a) l, D①特点:
( b4 j6 k3 C+ A1 A  V; N& K非静态成员内部类的对象总是与其外部类的对象相关联,没有外部类的对象就不能存在非静态成员类的对象;5 k. i2 Z0 r2 [9 i- a/ d9 ~
非静态成员内部类中可以直接访问其外部类的所有成员(包括私有成员),除非被非静态成员类中
, A, m7 [* Q; Y% f0 v声明的同名成员隐藏;非静态成员内部类中不能包含static的成员。' w) f; }+ y! ?8 x5 y! x
②外部类与内部类的访问原则
9 u( K" u! U7 u& y- K0 g4 MA:在内部类中可以直接引用它的外部类的成员,包括静态成员,实例成员及私有成员。7 b- s; `7 g4 ?3 A
           反之,在外部类中,通过一个内部类的对象引用内部类中的成员3 p# {# Z' w$ _2 E! D: a
B:非静态成员内部类中的this引用只能访问非静态成员类实例本身,要访问其外部类实例必须使用以下语法格式:.this. z* Q' w, m6 s  b1 \
③内部类中可随意使用外部类的成员方法和成员变量,包括被修饰为private的成员变量和方法。4 }$ o+ ^; K& {, q6 _$ W$ v  W
4 z3 D( i+ d' K: q
内部类的实例一定要绑定在外部类的实例上。
; ^' F( r; [- M/ G' W! J5 |3 a内部类初始化方式与其他类初始化方式相同,都是使用new关键字。3 n) b1 }* H5 z: g# s7 W* ^/ c
④创建内部类对象+ n- Q0 ^8 ~& a' h/ S
A:使用步骤:5 @( U7 T7 R2 A8 c
step1 建立外部类对象
3 O1 Y: M# v! g4 Rstep2 根据外部类对象建立内部类对象+ S$ L6 k' A" t1 z# ?
step3 访问内部类的方法
$ ?$ Q, \0 S% T+ K, O. dB:创建非静态成员内部类的对象要按照以下语法格式:9 C9 ~* y- |5 a; r5 H; L4 x- ?; E8 I
外部类类名.内部类类名 内部类引用=外部类对象引用.new 内部类构造方法(), \) e& t9 P# q+ W: c
⑤内部类的继承 " i$ J6 _" _" o* i& {
在同一个类中的内部类的继承;
. B/ g9 P) Y) @; w/ [- G; o/ H" t( n7 V$ @继承另一个外部类中的内部类:内部类的子类必须与被继承的内部类的外部类的实例关联。3 i9 {  g7 C! b0 b
内部类的子类不一定也是内部类。
& O/ A9 k' n' [: u7 s⑥内部类的作用   z. F& b$ u, B! U) U0 ~% X  f
内部类可以很好的实现隐藏& K- A! M4 U8 T, J( H1 }: M/ W8 R
内部类拥有外围类的所有元素的访问权限
# h7 e$ w4 t& W4 E1 q可以实现多重继承
$ c9 }2 H& S* C: L2 U2 C可以避免修改接口而实现同一个类中两种同名方法的调用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-7 07:15 , Processed in 0.374548 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表