a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 203|回复: 0

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

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
Java学习知识点要求(12)
. b$ Y' Z" P" b) v$ Z17、对象的初始化顺序,无继承时:先静态变量和静态代码块,再属性变量(对象变量)、再构造方法、再依照程序顺序执行其他语句;有继承时,先依次执行父类的静态变量,再子类的静态变量,在父类的属性变量,再父类的构造方法,在子类的属性变量,再子类的构造方法。(那些习题里有具体的)% V" z4 i* D0 s+ y8 I) ], f
(1)对象的初始化顺序% W  q2 O  a9 g6 Q' J
首先,创建一个对象。如果不创建一个类的对象,则永远不会建立该类中的静态对象。
0 D0 ^9 h6 C/ p( Z* P! m" d: {变量在调用任何方法之前得到初始化。
7 `. `+ x6 V! y1 u' U初始化的顺序是首先static(如果它们尚未由前一次对象创建过程初始化),接着是非static对象。* l$ v6 h7 I0 o, r% l$ ^
在一个类里,初始化的顺序是由变量在类内的定义顺序决定的。
; e# J% u& L& A  F. H2 Z- g; `建立第一个类对象之后,类中静态对象才会被创建,从此之后类中的静态对象不会被初始化。. m) S2 \. V9 K- p( ~
若数据是静态的(static),若只是声明,并没有初始化,如果它属于一个基本类型(主类型),而且未对其初始化,就会自动获得自己的标准基本类型初始值;如果它是指向一个对象,就会得到一个空值(NULL)。
) m5 w. l5 C, r4 N% w1 M(2)对象的创建过程 :1 J0 [( B/ Y4 w
首次创建一个Dog类的对象时,Java解释器必须找到Dog.class,所有static初始化模块都会运行(static初始化仅发生一次 ) ,在内存堆(Heap)里为一个Dog对象分配足够多的存储空间 ,这种存储空间会清为零,将Dog中的所有基本类型设为它们的默认值 。- N, L7 R4 ]  a- V. U
进行字段定义时发生的所有初始化都会执行。# K: _4 e6 o# Y2 {/ U
执行构建器。
  f% y, [- Y; W+ K+ C& L(3)明确进行的静态初始化
/ B; f, ?3 J+ N9 s5 s; p# B% r①静态块 ) k6 v2 K1 C2 X6 q5 X
class Spoon {+ h) o6 e# b/ h- ~: ~' j' _; ^
      static int i;
* T( u  P# v( e/ B6 c6 k      static {, y+ v) a% }& C7 Z+ _3 D
      i = 47;
3 w1 n+ b. u' d4 k; i+ z+ Z      }. ^$ L) {8 o+ q0 K. B  o
与其他static初始化一样,这段代码仅执行一次——首次生成那个类的一个对象时,或者首次访问属于那个类的一个static成员时(即便从未生成过那个类的对象)。/ z! \$ k3 Q, y( D2 Q% a
②非静态实例的初始化
, Y1 l$ ?  }5 m: `% d0 \5 v' r% E{, O+ e; V: i% _$ n+ N9 S
    c1 = new Mug(1);
! q( Q% Z& a9 v, y) T. X    c2 = new Mug(2);
* r0 F8 d3 g) ]! Q! |2 `    System.out.println("c1 & c2 initialized");- V) C5 d1 V6 q2 x0 u7 {
     }: C8 C9 p+ {* _( h1 I
(4)构建器的调用顺序
0 I& z) }" z0 |) i9 \, X ① 调用父类构造方法。这个步骤会不断重复下去,首先得到构建的是分级结构的根部,然后是下一个子类,等等。直到抵达最深一层的子类。
# B$ g2 [+ }- v0 P( R% f2 i$ Q② 按声明顺序调用成员初始化模块。( X. x' z' n( K# _" x9 e/ p; i1 R
③ 调用子类构造方法的主体。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:19 , Processed in 0.170826 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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