a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 145|回复: 1

[基础知识] JAVA认证:JAVA基础知识精华总结

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
1、对象的初始化
: f0 a6 D% L) H& M
( X3 Q) i- d; n' @9 [(1)风止态对象的初始化 1 c) ~0 k* p8 m+ s

$ P; g& d4 a7 L4 H8 a在建树对象时,对象地址类的所稀有据成员会首前进前辈行初始化。
: V/ |7 N% P! C, b3 ]5 R1 }$ j ( Z1 M, a5 U/ t' N) R
根基类型:int型,初始化为0。 9 A* r- G; T1 y( D

* S, S% ^& \' E9 }: y- c如不美观为对象:这些对象会按挨次初始化。
3 X7 F+ w2 u8 @8 A4 ~  Q) e9 j9 N
2 G' y/ X4 U2 R: j4 ?! R※在所有类成员初始化完成之后,才挪用本类的机关体例建树对象。
0 C3 |7 Y3 h4 L1 \0 y
" I& z) i. L1 S机关体例的浸染就是初始化。
  F/ A4 D" [5 k$ s; o9 S  ^' P. A5 g
- k$ I+ I8 l, W7 G; \) i& F6 B(2)静态对象的初始化   O" ?7 d3 z( o- |. e

$ k! I; H% B, s轨范中主类的静态变量会在main体例执行前初始化。 3 v' V/ i; i: w5 V8 q) n. N# N+ z  q

& d4 ~& A, Q  `( t$ M: D% G1 F不仅第一次建树对象时,类中的所有静态变量都初始化,而且第一次访谒某类(注重此时未建树此类对象)的静态对象时,所有的静态变量也要按它们在类中的挨次初始化。 ! z2 a! y# d; h1 K4 v. O' {4 Y
. z/ q$ f+ n  q, Q6 i
2、担任时,对象的初始化过程 1 l* E" Z2 k/ Y& u/ L
1 F& {: ^% b* G. x$ c
(1)主类的超类由高到低按挨次初始化静态成员,无论静态成员是否为private。
  g  G# T6 r; E, I   w* `3 ~% s# e' v0 p- o
(2)主类静态成员的初始化。
4 Z' J& V. l. [8 a
7 Q1 |. E' w4 u8 @% k(3)主类的超类由高到低进行默认机关体例的挪用。注重,在挪用每一个超类的默认机关体例前,前进前辈行对此超类进行风止态对象的初始化。
6 t2 o% E+ A( E8 y3 d2 N. w- i
9 l3 C" L8 R! @3 _(4)主类风止态成员的初始化。 3 j- @" M) q9 F+ `+ s

8 m3 V3 B" c4 G/ d: q: X(5)挪用主类的机关体例。
7 i! m# j! B5 T- Q 6 {& P3 ], m* W
3、关于机关体例
5 H* R+ Z  U6 K! q/ f* S
, k; {; T& C! H- ~* B(1)类可以没有机关体例,但如不美观有多个机关体例,就应该要有默认的机关体例,否则在担任此类时,需要在子类中显式挪用父类的某一个非默认的机关体例了。 : {5 o3 f. `* N5 a1 f; E

; Q: N7 \6 }/ k0 F* [(2)在一个机关体例中,只能挪用一次其他的机关体例,而且挪用机关体例的语句必需是第一条语句。   y' ~( u2 |; T% a5 N0 R

7 V, H; V' a& t% I4、有关public、private和protected 4 [! l, U7 U8 W0 q
7 G/ z, A* o/ t6 @5 n2 M0 N
(1)无public润色的类,可以被其他类访谒的前提是:a.两个类在统一文件中,b.两个类在统一文件夹中,c.两个类在统一软件包中。 3 ]& ~: q' D2 V; y4 R

& P2 k- W0 `$ X3 H; L4 |8 T' B(2)protected:担任类和统一软件包的类可访谒。 $ ~0 I" E- {6 {9 Q" j/ e0 E

7 @$ L  }! X* N! L5 h(3)如不美观机关体例为private,那么在其他类中不能建树该类的对象。
% ?( X: E( `7 c# _1 t
; H- ~$ Y9 \: [, J- i. W5、抽象类
# s: J' U! @" b5 M. C6 J, F0 A# d7 v
8 j0 B7 i/ h' P(1)抽象类不能建树对象。 9 X* w. J0 s* T0 f9 _5 V/ [1 D

2 ]. g6 J+ f2 n! ?, C  a5 ^(2)如不美观一个类一一个体例为抽象体例,则这个类必需为abstract抽象类。
5 B* ^$ w' X+ @0 J% s  h" E! S 2 V% ^# K0 R" F' R
(3)担任抽象类的类在类中必需实现抽象类中的抽象体例。 % k0 N9 [3 e; b0 C/ n9 M5 o9 b
" T7 y& _# ~8 y! N& Y; W5 d
(4)抽象类中可以有抽象体例,也可有风度象体例。抽象体例不能为private。
  _0 A0 N0 L2 |9 \8 V8 v 0 R2 R3 K8 p% y9 M1 u* _( o. j
(5)借居担任抽象类的类可以不给出抽象体例的界说。
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:37:28 | 显示全部楼层

JAVA认证:JAVA基础知识精华总结

6、final关头字
9 L  D" L5 C* u+ ^! G2 {6 W$ M8 { + p. X9 \2 s4 @
(1)一个对象是常量,不代表不能改变对象的成员,仍可以其成员进行操作。 : {* W, d" K6 E- M. K5 b: V; B

$ v3 a; L  E) ^4 l(2)常量在使用前必需赋值,但除了在声明的同时初始化外,就只能在机关体例中初始化。 # o1 [0 M0 _+ G0 l: }
6 P) q" x( E( o. i# N. i( y+ z7 b
(3)final润色的体例不能被重置(在子类中不能呈现同名体例)。 6 c4 m# Z7 [+ H, @0 s8 G0 @4 s

& ~7 G' w* I5 d7 v5 E(4)如不美观声明一个类为final,则所有的体例均为final,无论其是否被final润色,但数据成员可为final也可不是。 9 c" ]7 T' v$ N, X, K" P
- z. L1 E4 _5 ?
7、接口interface(用implements来实现接口) , |+ a; \/ N+ u
) c( n3 g. T0 _' l8 p' z6 a4 `+ d' \
(1)接口中的所稀有据均为static和final即静态常量。尽管可以不用这两个关头字润色,但必需给常量赋初值。
  f) r9 H* Y+ r# |% p2 I8 i- R3 m  z
' y) b/ t$ e' t(2)接口中的体例均为public,在实现接口类中,实现体例必需可public关头字。 3 B0 l6 ]6 {! ^* I
4 ^$ }1 h* q) G+ F4 `
(3)如不美观使用public来润色接口,则接口必需与文件名不异。 3 E; w8 K9 B! {0 S% k
3 m2 D" Y# B0 ?( ?
8、多重担任 ; @" r3 k& v' y! }: ~& J# o) d

9 i7 v# e& p- ?* K(1)一个类担任了一个类和接口,那么必需将类写在前面,接口写在后面,接口之间用逗号分隔。 9 J  s0 W8 r& U- U5 ]

+ q  B* F* a9 a- D% |+ N(2)接口之间可多重担任,注重使用关头字extends。
  r  F  d$ h, w) F+ a7 h , O1 B% ]2 }* [' O' y
(3)一个类虽只实现了一个接口,但不仅要实现这个接口的所有体例,还要实现这个接口担任的接口的体例,接口中的所有体例均须在类中实现。 * {! d! j2 n7 ^2 d1 I

# n* L% p0 n" ^9 @; I9、接口的嵌入 " n( s/ U5 l; r$ S
4 V2 y4 ]7 F' @$ d! F
(1)接口嵌入类中,可以使用private润色。此时,接口只能在地址的类中实现,其他类不能访谒。 8 I* b5 |+ @$ ~: v% N

8 J6 s& F5 D/ A, o- A(2)嵌入接口中的接口必然要为public。
# g1 L5 ]5 |) Q
; x( X+ L( H" {: `3 E" h# W$ S. Q0 h0 e10、类的嵌入
1 U, y9 \6 E  S7 p4 ?4 a) j 7 {  q7 |9 N8 S; w: s3 y
(1)类可以嵌入另一个类中,但不能嵌入接口中。 . a4 c2 |' S) y
6 p# j( @* J$ T, ^
(2)在静态体例或其他体例中,不能直接建树内部类对象,需经由过程手段来取得。 4 Y+ o& F- C0 s& }) i$ }4 g& m

+ ]) R4 W  N$ ?3 g4 F  R2 ^手段有两种: , G2 Q1 l8 `& ]- B7 A+ h: Q9 T
2 M3 ^; A9 O/ {% Y
class A { class B {} B getB() { B b = new B(); return b; } } static void m() { A a = new A(); A.B ab = a.getB(); // 或者是 A.B ab = a.new B(); }   
# }* i6 }/ R# [- I0 N# J' Y! r) ^ $ v2 _  `8 l- K
1 I! I/ y' v) K/ @$ m4 ^7 _
(3)一个类担任了另一个类的内部类,因为超类是内部类,而内部类的机关体例不能自动被挪用,这样就需要在子类的机关体例中明晰的挪用超类的机关体例。接上例: ; Y; \  g: ~9 o8 f, a) l! b7 w  o# h
0 L5 C. M% s1 ]/ f  @
class C extends A.B { C() { new A().super(); // 这一句就实现了对内部类机关体例的挪用。 } }    3 T& X% J; \1 |6 S/ J5 k
! O, K1 ~- X4 z, t2 P8 l8 w- Q0 J
2 ^6 @- ?3 r' V1 s7 i
机关体例也可这样写: + K0 I; O; Q8 `8 ~. V% d
2 L( C6 {& F5 q( k$ a
C(A a) { a.super(); } // 使用这个机关体例建树对象,要写成C c = new C(a); a是A的对象。  * S! Q4 n6 |% Q- k

( h& n- ~. ?6 f: M: i
  _1 i: M, s/ f: ]0 E9 j11、异常类 0 E9 O9 N* p7 j6 K% m

4 l) R" O; @% U# |3 Q& f% F! p1 @* kJAVA中除了RunTimeException类,其他异常均须捕捉或抛出。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 21:58 , Processed in 0.278093 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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