java学习笔记:java笔记
来源: 发布时间:星期五, 2009年4月3日 浏览:0次 评论:0
![](/icons/85311yi.gif) 、Java中 ![](/icons/85311de.gif) char类型是16位 ![](/icons/85311dou.gif) 其范围是0??65536 ![](/icons/85311dou.gif) 没有负数 ![](/icons/85311de.gif) char ![](/icons/85311dou2.gif) 在java 中 ![](/icons/85311dou.gif) char是 ![](/icons/85311int.gif) ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 个子集 JAVA中文站社区门户)wXiD/R6^W~.o 2、ASCII ![](/icons/85311zifu.gif) 集占用了Unicode ![](/icons/85311zifu.gif) 集 ![](/icons/85311de.gif) 前127个值 qwXH7Eu 3、Java ![](/icons/85311de.gif) 自动类型转换:两个条件(1、这2种类型是兼容 ![](/icons/85311de.gif) ![](/icons/85311dou.gif) 2、目 ![](/icons/85311de.gif) 类型数 ![](/icons/85311de.gif) 范围比原类型 ![](/icons/85311de.gif) 大;) JAVA中文站社区门户#C4B~%M%D#~ MJAVA中文站社区门户rMx3n/yHb
Z&r d第 6章 M&K,V%G
H3q1U
x1A.UJAVA中文站社区门户@*a#AC ou7tp2f+c-u![](/icons/85311yi.gif) 、 ![](/icons/85311new.gif) 运算符是在运行期间为对象分配内存 ![](/icons/85311de.gif) ![](/icons/85311dou.gif) 即动态性;但内存是有限 ![](/icons/85311de.gif) ![](/icons/85311dou.gif) 因此 ![](/icons/85311new.gif) 有可能由于内存不足而无法给 ![](/icons/85311yi.gif) 个对象分配内存 ![](/icons/85311dou2.gif) 此时就会出现异常 6|)kz3|I:Y3f&U4MQQ
Crh!\;C 2、类是 ![](/icons/85311yi.gif) 个逻辑构造 ![](/icons/85311dou.gif) 对象有物理 ![](/icons/85311de.gif) 真实性;
p
zDa[HJAVA中文站社区门户C
o`.^!qoH 3、当将 ![](/icons/85311yi.gif) 个对象引用赋值给另 ![](/icons/85311yi.gif) 个对象时 ![](/icons/85311dou.gif) 你并没有创建对象 ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 个拷贝 ![](/icons/85311dou.gif) 而是仅仅对引用 ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 个拷贝 JAVA中文站社区门户Mi1fC8gUbH'vK e{~T1Ei(]] 4、构造 ![](/icons/85311hanshu.gif) ![](/icons/85311de.gif) 任务就是 ![](/icons/85311chushi.gif) 化 ![](/icons/85311yi.gif) 个对象 ![](/icons/85311de.gif) 内部状态 ![](/icons/85311dou.gif) 以便使创建 ![](/icons/85311de.gif) 例子变量能够完全 ![](/icons/85311chushi.gif) 化 ![](/icons/85311dou.gif) 可以被对象马上使用 ![](/icons/85311dou2.gif) 当 ![](/icons/85311new.gif) 创建对象时 ![](/icons/85311dou.gif) 每个对象被他 ![](/icons/85311de.gif) 构造 ![](/icons/85311hanshu.gif) 指定 ![](/icons/85311de.gif) 参数 ![](/icons/85311chushi.gif) 化 JAVA中文站社区门户WJk&?0jJAVA中文站社区门户*}7ey;Z%gc第 7章 sCfy
b1qAv{-o#m)]\r![](/icons/85311yi.gif) 、思路方法重载:同 ![](/icons/85311yi.gif) 个类中 ![](/icons/85311de.gif) 两个或两个以上 ![](/icons/85311de.gif) 思路方法可以有同 ![](/icons/85311yi.gif) 个名字 ![](/icons/85311dou.gif) 只要他们 ![](/icons/85311de.gif) 参数声明区别即可 ![](/icons/85311dou2.gif) 他是实现多态性 ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 种思路方法 {E
@|)|-y@%] 2、思路方法重载支持多态性 ![](/icons/85311dou.gif) ![](/icons/85311yinwei.gif) 他是java 实现“ ![](/icons/85311yi.gif) 个接口 ![](/icons/85311dou.gif) 多个思路方法”范型 ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 种方式 ![](/icons/85311dou2.gif) 重载 ![](/icons/85311de.gif) 价值在于他允许相关 ![](/icons/85311de.gif) 思路方法可以使用同 ![](/icons/85311yi.gif) 个名字来访问 8H.bZ5A2l"vZg 3、当创建自己 ![](/icons/85311de.gif) 类时 ![](/icons/85311dou.gif) 为了方便高效 ![](/icons/85311de.gif) 构造对象 ![](/icons/85311dou.gif) 必须为同 ![](/icons/85311yi.gif) 构造 ![](/icons/85311hanshu.gif) 提供多种形式 JAVA中文站社区门户YvM(E k+|nJAVA中文站社区门户cSZ6V
a1D8Y/U 4、总 ![](/icons/85311de.gif) 来说 ![](/icons/85311dou.gif) 计算机语言给子 ![](/icons/85311chengxu.gif) 传递参数 ![](/icons/85311de.gif) 思路方法有两种:1 ![](/icons/85311dou2.gif) 按值传递(call-by-value);2、引用 ![](/icons/85311diaoyong.gif) (call-by-reference) JAVA中文站社区门户lf9c\C4TJAVA中文站社区门户(oI HLQ\@r当 ![](/icons/85311yi.gif) 个简单类型传递给 ![](/icons/85311yi.gif) 个思路方法时 ![](/icons/85311dou.gif) 使用按值传递;对象传递则按引用传递 YrP5c
yg*|+GJAVA中文站社区门户W'YJ;D:u
k;Oc"V8cW1bJAVA中文站社区门户'B0E&g/JBC` 5、 封装将数据和处理数据 ![](/icons/85311de.gif) 代码连接起来 ![](/icons/85311dou2.gif) 同时也提供另 ![](/icons/85311yi.gif) 个重要属性:访问控制(access control) ![](/icons/85311dou2.gif) ![](/icons/85311yi.gif) 个成员被访问取决和修改他 ![](/icons/85311de.gif) 声明 ![](/icons/85311de.gif) 访问指示符(access spec ![](/icons/85311if.gif) ier) ![](/icons/85311dou2.gif) java ![](/icons/85311de.gif) 访问指示符有public、private、protected.protected仅用于继承情况中 ![](/icons/85311dou2.gif) 外部类对他 ![](/icons/85311de.gif) private成员变量进行访问只能通过他 ![](/icons/85311de.gif) public 思路方法 ![](/icons/85311dou2.gif) 在大多数实际应用 ![](/icons/85311de.gif) 类中 ![](/icons/85311dou.gif) 有必要仅仅允许通过思路方法来对数据操作 ,M,gl7`D
j*M%]Wr-BJAVA中文站社区门户1oi8\2V-I1t9L3O1kJAVA中文站社区门户I{VE.ZO@,]4~+X,B 6 、 ![](/icons/85311static.gif) 关键字可使 ![](/icons/85311yi.gif) 个类成员 ![](/icons/85311de.gif) 使用完全独立和该类 ![](/icons/85311de.gif) 任何对象 ![](/icons/85311dou2.gif) 即他能够在他 ![](/icons/85311de.gif) 类 ![](/icons/85311de.gif) 任何对象创建的前被访问 ![](/icons/85311dou.gif) 而不必引用任何对象 ![](/icons/85311dou2.gif) ![](/icons/85311static.gif) 成员 ![](/icons/85311de.gif) 最常见 ![](/icons/85311de.gif) 例子是 ![](/icons/85311main.gif) () ![](/icons/85311dou2.gif) ![](/icons/85311yinwei.gif) 在 ![](/icons/85311chengxu.gif) 执行时必须 ![](/icons/85311diaoyong.gif) ![](/icons/85311main.gif) ![](/icons/85311kh.gif) ![](/icons/85311dou2.gif) ![](/icons/85311static.gif) 变量实质就是全局变量 ![](/icons/85311dou2.gif) 当声明 ![](/icons/85311yi.gif) 个对象时 ![](/icons/85311dou.gif) 并不产生 ![](/icons/85311static.gif) 变量 ![](/icons/85311de.gif) 拷贝 ![](/icons/85311dou.gif) 而是该类所有 ![](/icons/85311de.gif) 例子变量共用同 ![](/icons/85311yi.gif) 个 ![](/icons/85311static.gif) 变量 JAVA中文站社区门户n apT,\Ti6c+HQ5xN#FG声明为 ![](/icons/85311static.gif) ![](/icons/85311de.gif) 思路方法有以下几条限制: y8`k8r\N1、他们仅能 ![](/icons/85311diaoyong.gif) 其他 ![](/icons/85311de.gif) ![](/icons/85311static.gif) 思路方法 ![](/icons/85311dou2.gif) 2、他们只能访问 ![](/icons/85311static.gif) 数据 ![](/icons/85311dou2.gif) 3、他们不能以任何方式引用this或super JAVA中文站社区门户%cv:l{9c%\Ah在 ![](/icons/85311yi.gif) 个 ![](/icons/85311static.gif) 思路方法中引用任何例子变量都是非法 ![](/icons/85311de.gif) JAVA中文站社区门户2KYn`i3Bzef(p&Xm(JR2pS 8、 ![](/icons/85311yi.gif) 个被声明为final ![](/icons/85311de.gif) 变量是不可修改 ![](/icons/85311de.gif) ![](/icons/85311dou.gif) 这就意味着必须再声明final变量时对他进行 ![](/icons/85311chushi.gif) 化 JAVA中文站社区门户a^|7rs/U WeC^Vx 9、java中 ![](/icons/85311de.gif) ![](/icons/85311shuzu.gif) 是作为对象来实现 ![](/icons/85311de.gif) ![](/icons/85311dou2.gif) 所有 ![](/icons/85311de.gif) ![](/icons/85311shuzu.gif) 都拥有length例子变量 ![](/icons/85311dou2.gif) length仅反映了 ![](/icons/85311shuzu.gif) 能够包含 ![](/icons/85311de.gif) 元素 ![](/icons/85311de.gif) 个数 0rO$@+q'g k?%G8],nJAVA中文站社区门户+|o(ElP'{m![](/icons/85311yi.gif) ○、嵌套类:在另 ![](/icons/85311yi.gif) 个类中定义 ![](/icons/85311de.gif) 类就是嵌套类(nested ![](/icons/85311class.gif) es) B%~2IuDwZ若A嵌套B ![](/icons/85311dou.gif) 则B可访问A ![](/icons/85311de.gif) 所有成员 ![](/icons/85311dou.gif) 包括private成员;而A不可以 访问B ![](/icons/85311de.gif) 任何成员 ![](/icons/85311dou2.gif) 嵌套类在处理applet时特别有帮助 JAVA中文站社区门户l F D!t$O \_,l d;C%{p
q)k*Sa;tU7g7cvb@#d)jc9E4hh![](/icons/85311yi.gif) ![](/icons/85311yi.gif) 、String类:( ![](/icons/85311zifu.gif) 串) X@-C%c.A+I@在java中所创建 ![](/icons/85311de.gif) ![](/icons/85311zifu.gif) 串 ![](/icons/85311dou.gif) 包括 ![](/icons/85311zifu.gif) 串常量 都是 ![](/icons/85311string.gif) 类型 ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 个对象 ![](/icons/85311dou2.gif) 和其他类型对象 ![](/icons/85311yi.gif) 样 ![](/icons/85311dou.gif) ![](/icons/85311string.gif) 也可以组成 ![](/icons/85311shuzu.gif) JAVA中文站社区门户v+_`s)k"M!{[GJAVA中文站社区门户IV7V(M*@ e2|![](/icons/85311yi.gif) 2、命令行参数: u6X0P;i-_dLjava中 ![](/icons/85311de.gif) 命令行参数是作为 ![](/icons/85311zifu.gif) 串存储在传递给 ![](/icons/85311main.gif) ![](/icons/85311kh.gif) ![](/icons/85311de.gif) ![](/icons/85311string.gif) ![](/icons/85311shuzu.gif) 中 JAVA中文站社区门户x*c*fd.q S)Z&vs AU,w-]6x第 8章 继承(extends) JAVA中文站社区门户b[cl2G3s
IC1?$n!K:poZ
rM6d!U![](/icons/85311yi.gif) 、尽管子类中包括超类 ![](/icons/85311de.gif) 所有成员 ![](/icons/85311dou.gif) 他不能访问超类中被声明为private ![](/icons/85311de.gif) 成员 ![](/icons/85311dou2.gif) ![](/icons/85311yi.gif) 个被定义为private ![](/icons/85311de.gif) 类成员为此类私有 ![](/icons/85311dou.gif) 他不能被该类外 ![](/icons/85311de.gif) 所有代码访问 ![](/icons/85311dou.gif) 包括子类 { c8u'D1rZm^ ?I2Gp
t*S(X~ 2、 继承 ![](/icons/85311de.gif) 本质: ![](/icons/85311yi.gif) 旦已创建了 ![](/icons/85311yi.gif) 个定义了对象 ![](/icons/85311yi.gif) 般属性 ![](/icons/85311de.gif) 超类 ![](/icons/85311dou.gif) 该超类可以被继承以生成特殊用途 ![](/icons/85311de.gif) 类 JAVA中文站社区门户J0I"J8D mN4}i&APAJAVA中文站社区门户mS$Se
^t 3、超类变量可以引用子类对象: +Hk0C(Y0L3klN~g#{JAVA中文站社区门户xE9Hb]i是引用变量 ![](/icons/85311de.gif) 类型??而不是引用对象 ![](/icons/85311de.gif) 类型??决定了什么成员可以被访问 ![](/icons/85311dou2.gif) 即 当 ![](/icons/85311yi.gif) 个子类对象 ![](/icons/85311de.gif) 引用被赋值给 ![](/icons/85311yi.gif) 个超类变量时 ![](/icons/85311dou.gif) 只能访问超类定义 ![](/icons/85311de.gif) 对象 ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 部分 -@8M7M4z,X,cr 4、super ![](/icons/85311de.gif) 两种通用形式:1、 ![](/icons/85311diaoyong.gif) 超类 ![](/icons/85311de.gif) 构造 ![](/icons/85311hanshu.gif) ;2、用来访问被子类 ![](/icons/85311de.gif) 成员隐藏 ![](/icons/85311de.gif) 超类成员 ![](/icons/85311dou2.gif) 当 ![](/icons/85311yi.gif) 个子类 ![](/icons/85311diaoyong.gif) super ![](/icons/85311kh.gif) ,他 ![](/icons/85311diaoyong.gif) 他 ![](/icons/85311de.gif) 直接超类 ![](/icons/85311de.gif) 构造 ![](/icons/85311hanshu.gif) ![](/icons/85311dou2.gif) 这样 ![](/icons/85311dou.gif) super ![](/icons/85311kh.gif) 总是引用 ![](/icons/85311diaoyong.gif) 类直接 ![](/icons/85311de.gif) 超类 ![](/icons/85311dou2.gif) 还有 ![](/icons/85311dou.gif) super()必须是子类构造 ![](/icons/85311hanshu.gif) 中 ![](/icons/85311de.gif) 第 ![](/icons/85311yi.gif) 个执行语句 ![](/icons/85311dou2.gif) java支持多级类层次结构 7BG*V"o4t^){+p继承 ![](/icons/85311de.gif) 部分价值:他允许代码重用 ![](/icons/85311dou2.gif) 构造 ![](/icons/85311hanshu.gif) 以派生 ![](/icons/85311de.gif) 顺序被 ![](/icons/85311diaoyong.gif)
_t*N{$r/{9m.YQ3B%p(RG d*QK(W 5、思路方法重载:(8、5 ![](/icons/85311de.gif) 内容) JAVA中文站社区门户 N't%x2mOx$hx*Q在类层次结构中 ![](/icons/85311dou.gif) 若子类中 ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 个思路方法和他超类中 ![](/icons/85311de.gif) 思路方法有同样 ![](/icons/85311de.gif) 思路方法名和类型声明 ![](/icons/85311dou.gif) 称子类中 ![](/icons/85311de.gif) 思路方法重载(override)超类中 ![](/icons/85311de.gif) 思路方法 ![](/icons/85311dou2.gif) 当从子类中 ![](/icons/85311diaoyong.gif) 重载思路方法时 ![](/icons/85311dou.gif) 他总是引用子类定义 ![](/icons/85311de.gif) 思路方法 ![](/icons/85311dou.gif) 而超类中 ![](/icons/85311de.gif) 思路方法将被隐藏 ![](/icons/85311dou2.gif) 思路方法覆盖仅在两个思路方法 ![](/icons/85311de.gif) 名称和类型声明都相同时才发生 ![](/icons/85311dou2.gif) 如果他们区别 ![](/icons/85311dou.gif) 那两个思路方法就只是重载 (c"r.~s#t pJAVA中文站社区门户je`^xVE思路方法重载构成java ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 个最强大 ![](/icons/85311de.gif) 概念基础:动态思路方法调度(dynamic method dispatch) ![](/icons/85311dou2.gif) 动态思路方法调度是 ![](/icons/85311yi.gif) 种在运行时而不是在编译时 ![](/icons/85311diaoyong.gif) 重载思路方法 ![](/icons/85311de.gif) 机制 ![](/icons/85311dou2.gif) 过程如下:当 ![](/icons/85311yi.gif) 个重载思路方法通过超类引用被 ![](/icons/85311diaoyong.gif) ![](/icons/85311dou.gif) java根据当前被引用对象 ![](/icons/85311de.gif) 类型来决定执行哪个版本 ![](/icons/85311de.gif) 思路方法 ![](/icons/85311dou2.gif) 若引用 ![](/icons/85311de.gif) 对象类型区别 ![](/icons/85311dou.gif) 就会 ![](/icons/85311diaoyong.gif) ![](/icons/85311yi.gif) 个重载思路方法 ![](/icons/85311de.gif) 区别版本 ![](/icons/85311dou2.gif) 即:是被引用对象 ![](/icons/85311de.gif) 类型(而不是引用变量 ![](/icons/85311de.gif) 类型)决定执行哪个版本 ![](/icons/85311de.gif) 重载思路方法 ![](/icons/85311dou2.gif) 因此 ![](/icons/85311dou.gif) 若超类包含 ![](/icons/85311yi.gif) 个被子类重载 ![](/icons/85311de.gif) 思路方法 ![](/icons/85311dou.gif) 那么当通过超类引用变量引用区别对象类型时 ![](/icons/85311dou.gif) 就会执行该思路方法 ![](/icons/85311de.gif) 区别版本 JAVA中文站社区门户6DW~!B1X#j重载思路方法允许java支持运行时 ![](/icons/85311de.gif) 多态性 ![](/icons/85311dou2.gif) 多态性是面向对象编程 ![](/icons/85311de.gif) 本质 ![](/icons/85311dou2.gif) 重载思路方法是java实现他 ![](/icons/85311de.gif) “ ![](/icons/85311yi.gif) 个接口 ![](/icons/85311dou.gif) 多个思路方法” ![](/icons/85311de.gif) 另 ![](/icons/85311yi.gif) 种方式 JAVA中文站社区门户%\}4Pw8?;`r7naGO1Op 6、使用抽象类: JAVA中文站社区门户K~9ZRf`wDJAVA中文站社区门户R|5j/s&w;b当创建自己 ![](/icons/85311de.gif) 类库时会发现 ![](/icons/85311dou.gif) 超类中 ![](/icons/85311de.gif) 思路方法没有实际意义并不罕见 ![](/icons/85311dou2.gif) 有两种思路方法处理这种情况 ![](/icons/85311dou2.gif) 1、仅报告 ![](/icons/85311yi.gif) 个 ![](/icons/85311cuowu.gif) 信息;2、通过子类重载该思路方法使他对子类有意义 M%y!IO%h任何含有抽象思路方法 ![](/icons/85311de.gif) 类都必须声明为抽象类 ![](/icons/85311dou2.gif) 抽象类没有对象 ![](/icons/85311dou.gif) 即 ![](/icons/85311yi.gif) 个抽象类不能通过 ![](/icons/85311new.gif) 操作符直接例子化 ![](/icons/85311dou2.gif) 而且 ![](/icons/85311dou.gif) 不能定义抽象构造 ![](/icons/85311hanshu.gif) 或抽象静态思路方法 ![](/icons/85311dou2.gif) 所有抽象类 ![](/icons/85311de.gif) 子类都必须执行超类中 ![](/icons/85311de.gif) 所有抽象思路方法或者他自己也声明为abstract V#z]g I})hQ7YP0? wX9w2^#Hvd&ov}s$r#P2x%NhR&}e尽管不可能创建 ![](/icons/85311yi.gif) 个Figure类型 ![](/icons/85311de.gif) 对象 ![](/icons/85311dou.gif) 但可以创建 ![](/icons/85311yi.gif) 个Figure类型 ![](/icons/85311de.gif) 引用变量 ![](/icons/85311dou2.gif) 变量figref声明为Figure ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 个引用 ![](/icons/85311dou.gif) 即他可以用来引用任何从Figure派生 ![](/icons/85311de.gif) 对象 JAVA中文站社区门户uT)~G@](PJAVA中文站社区门户!c;Z*k7R*r+u"V 7、Final关键字 ![](/icons/85311de.gif) 3个用途:1、创建 ![](/icons/85311yi.gif) 个已命名常量 ![](/icons/85311de.gif) 等价物;其他 ![](/icons/85311de.gif) 两个使用方法是应用于继承 ![](/icons/85311de.gif) ![](/icons/85311dou2.gif) :2、使用final 防止继承 ; 3、防止思路方法重载 JAVA中文站社区门户d*?pxdukdB'O3_Z.P%v-IXU-q Y mos在类的前加final可防止类被继承;声明 ![](/icons/85311yi.gif) 个final类就含蓄 ![](/icons/85311de.gif) 宣告他 ![](/icons/85311de.gif) 所有思路方法都是final. C9Zbma*b3?]6sh1i TJAVA中文站社区门户z$w'bB$iw/~9t-y0DW第 9章 JAVA中文站社区门户dR'I/V*zc%K;hqJAVA中文站社区门户va9GVT7cX接口不定义任何实现 ![](/icons/85311dou.gif) 尽管他和抽象类相似 ![](/icons/85311dou.gif) 接口有 ![](/icons/85311yi.gif) 个特殊 ![](/icons/85311de.gif) 功能:类可以实现多个接口 ![](/icons/85311dou2.gif) 相反 ![](/icons/85311dou.gif) 类只能继承 ![](/icons/85311yi.gif) 个超类 Dv+M5MX3z n.ZZ*f,e4njava源 ![](/icons/85311chengxu.gif) 可以包含下面 ![](/icons/85311de.gif) 4个内部部分 ![](/icons/85311de.gif) 任何 ![](/icons/85311yi.gif) 个:
S
dXc
D$L#a1、单个接口声明(可选) 2、任意数目 ![](/icons/85311de.gif) 引入语句(可选)3、单个公共类声明(必须)4、对包来说是私有 ![](/icons/85311de.gif) 任意数目 ![](/icons/85311de.gif) 类(可选) eq#\#tz&OEe!QJAVA中文站社区门户H%R:j,en&Q&k)O&dv![](/icons/85311yi.gif) 、包(package):包既是命名机制也是可见度控制机制 ![](/icons/85311dou2.gif) 可在包内定义类 ![](/icons/85311dou.gif) 且在包外 ![](/icons/85311de.gif) 代码不能访问类 ![](/icons/85311dou2.gif) package语句定义了 ![](/icons/85311yi.gif) 个存储类 ![](/icons/85311de.gif) 名字空间 ![](/icons/85311dou2.gif) java用文件系统目录来存储包 ![](/icons/85311dou2.gif) 目录名必须和包名完全匹配 2@YinS(x,n.}vJAVA中文站社区门户[.NL&|7{/PR9G类是java ![](/icons/85311de.gif) 最小 ![](/icons/85311de.gif) 抽象单元 ![](/icons/85311dou2.gif) ![](/icons/85311yinwei.gif) 类和包 ![](/icons/85311de.gif) 相互影响 ![](/icons/85311dou.gif) java将类成员 ![](/icons/85311de.gif) 可见度分为 4个种类: JAVA中文站社区门户1BU}F@|!D9{o1、相同包中 ![](/icons/85311de.gif) 子类;2、相同包中 ![](/icons/85311de.gif) 非子类;3、区别包中 ![](/icons/85311de.gif) 子类;4、既不在相同包又不在相同子类中 ![](/icons/85311de.gif) 类 Q#FH,P}5A3{`N@/X?{!h
b"f"~feY2|^u若希望 ![](/icons/85311yi.gif) 个元素在当前包外可见 ![](/icons/85311dou.gif) 但仅仅是元素所在类 ![](/icons/85311de.gif) 子类直接可见 ![](/icons/85311dou.gif) 则把元素定义为protected. P
IToEMQJAVA中文站社区门户3t.c6}L3o#TjH|W(O%hYM![](/icons/85311yi.gif) 个类只有两个控制级别:默认 ![](/icons/85311de.gif) 或公共 ![](/icons/85311de.gif) ![](/icons/85311dou2.gif) 若 ![](/icons/85311yi.gif) 个类声明为public,他可以被任何其他代码访问 ![](/icons/85311dou2.gif) 若该类默认访问控制符 ![](/icons/85311dou.gif) 他仅可以被相同包中 ![](/icons/85311de.gif) 其他代码访问 ![](/icons/85311dou2.gif) 当 ![](/icons/85311yi.gif) 个包被引用 ![](/icons/85311dou.gif) 仅仅是该包中声明成public ![](/icons/85311de.gif) 项目可以在引入代码中对非子类可用 5j
C6R+]z}Qz1tUrr@ 2、接口( ![](/icons/85311int.gif) erface ):用 ![](/icons/85311int.gif) erface可以指定 ![](/icons/85311yi.gif) 个类必须做什么 ![](/icons/85311dou.gif) 而不是规定他如何去做 BW#\0rhD#D@_1、接口 ![](/icons/85311de.gif) 真正含义:接口和类处于区别 ![](/icons/85311de.gif) 层次中 ![](/icons/85311dou.gif) 且和类层次无关 ![](/icons/85311de.gif) 类实现相同 ![](/icons/85311de.gif) 接口是可行 ![](/icons/85311de.gif) JAVA中文站社区门户+wcE]js(f.N2、在接口中指定 ![](/icons/85311de.gif) 思路方法没有默认 ![](/icons/85311de.gif) 实现 ![](/icons/85311dou.gif) 每个包含接口 ![](/icons/85311de.gif) 类必须实现所有 ![](/icons/85311de.gif) 思路方法 *Nq2rpmz3、实现接口 ![](/icons/85311de.gif) 思路方法必须声明为public,而且 ![](/icons/85311dou.gif) 实现思路方法 ![](/icons/85311de.gif) 类型必须严格和接口定义中指定 ![](/icons/85311de.gif) 类型相匹配 JAVA中文站社区门户y^f Qz9kT?h4、 ![](/icons/85311yi.gif) 个接口引用变量仅仅知道被他 ![](/icons/85311de.gif) 接口定义声明 ![](/icons/85311de.gif) 思路方法
~ w9hR O%i9JY5、可以把变量定义成使用接口 ![](/icons/85311de.gif) 对象引用而不是类 ![](/icons/85311de.gif) 类型 ![](/icons/85311dou2.gif) 任何实现了所声明接口 ![](/icons/85311de.gif) 类 ![](/icons/85311de.gif) 例子都可以被这样 ![](/icons/85311de.gif) ![](/icons/85311yi.gif) 个变量引用 ![](/icons/85311dou2.gif) 当通过这些引用 ![](/icons/85311diaoyong.gif) 思路方法时 ![](/icons/85311dou.gif) 再实现引用接口 ![](/icons/85311de.gif) 例子 ![](/icons/85311de.gif) 基础上 ![](/icons/85311dou.gif) 思路方法被正确 ![](/icons/85311diaoyong.gif) ![](/icons/85311diaoyong.gif) 代码在完全不知“ ![](/icons/85311diaoyong.gif) 者” ![](/icons/85311de.gif) 情况下可以通过接口来调度 ?Pm[o9F8t)q;s&{@oQ 6、若 ![](/icons/85311yi.gif) 个类包含 ![](/icons/85311yi.gif) 个接口但是不完全实现接口定义 ![](/icons/85311de.gif) 思路方法 ![](/icons/85311dou.gif) 那么该类必须定义为abstract型 ![](/icons/85311dou2.gif) 并且任何继承这个类 ![](/icons/85311de.gif) 类也必须实现所有接口中定义 ![](/icons/85311de.gif) 思路方法或者将自己定义为abstract类
Q C"~$U8D
v$Ge6r"y9F5u6V可使用接口来引入多个类 ![](/icons/85311de.gif) 共享常量 ![](/icons/85311dou2.gif) 接口还可以运用关键字extends被其他接口继承 ![](/icons/85311dou2.gif) 其语法和继承 ![](/icons/85311yi.gif) 样 ![](/icons/85311dou2.gif) 当 ![](/icons/85311yi.gif) 个类实现 ![](/icons/85311yi.gif) 个继承了另 ![](/icons/85311yi.gif) 个接口 ![](/icons/85311de.gif) 接口时 ![](/icons/85311dou.gif) 他必须实现接口继承链表中定义 ![](/icons/85311de.gif) 所有思路方法 JAVA中文站社区门户8ZP,Y+t9]XrOte(t%k2yK}CJAVA中文站社区门户?!O1W0a7C0z[第十章 异常处理 |