a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 175|回复: 0

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

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
Java学习知识点要求(12)  |( D; k2 Q+ t
17、对象的初始化顺序,无继承时:先静态变量和静态代码块,再属性变量(对象变量)、再构造方法、再依照程序顺序执行其他语句;有继承时,先依次执行父类的静态变量,再子类的静态变量,在父类的属性变量,再父类的构造方法,在子类的属性变量,再子类的构造方法。(那些习题里有具体的)7 A3 a- L, p5 s' T% P
(1)对象的初始化顺序/ ?, U9 P4 q3 R5 {3 |. [3 Q% {9 l
首先,创建一个对象。如果不创建一个类的对象,则永远不会建立该类中的静态对象。, B7 A% K+ ^3 H1 P: ~
变量在调用任何方法之前得到初始化。
/ {% O. Z0 S9 l" Q初始化的顺序是首先static(如果它们尚未由前一次对象创建过程初始化),接着是非static对象。
4 F4 @/ x2 G$ I1 ]2 N在一个类里,初始化的顺序是由变量在类内的定义顺序决定的。
6 `/ p' @' f& F3 M0 @% r1 c建立第一个类对象之后,类中静态对象才会被创建,从此之后类中的静态对象不会被初始化。
$ [5 i$ l. P! c5 G9 B8 C若数据是静态的(static),若只是声明,并没有初始化,如果它属于一个基本类型(主类型),而且未对其初始化,就会自动获得自己的标准基本类型初始值;如果它是指向一个对象,就会得到一个空值(NULL)。
3 ?; w5 r1 f' z(2)对象的创建过程 :- m1 d+ H% q* h2 v1 m
首次创建一个Dog类的对象时,Java解释器必须找到Dog.class,所有static初始化模块都会运行(static初始化仅发生一次 ) ,在内存堆(Heap)里为一个Dog对象分配足够多的存储空间 ,这种存储空间会清为零,将Dog中的所有基本类型设为它们的默认值 。
6 n  I/ r' ?2 ^+ B5 S3 \进行字段定义时发生的所有初始化都会执行。
1 T6 t* p' W0 C, @# k5 Z执行构建器。
5 H9 P* ^% ^  E; p+ I! v(3)明确进行的静态初始化 ; G& \, H9 k, A6 B/ _  ?7 I
①静态块 ! R# K/ B$ M" D+ O
class Spoon {7 ]" k4 Q2 A" Y) c  t0 i
      static int i;
$ p! j7 p( f* I      static {# l0 R7 R5 d2 b" [6 R) M2 Z6 y
      i = 47;! c, V. g* J6 a$ g. _( p
      }
$ P( ?* [! @" b) j' [1 Q与其他static初始化一样,这段代码仅执行一次——首次生成那个类的一个对象时,或者首次访问属于那个类的一个static成员时(即便从未生成过那个类的对象)。
4 @2 y5 a2 n* S$ H/ w②非静态实例的初始化
6 b9 e# `3 P% [2 F, H/ a{
8 O" R5 b$ u2 P2 x9 \    c1 = new Mug(1);
# h3 [( |1 y  q    c2 = new Mug(2);
6 l( V& r* z7 e( H0 A4 b0 ]    System.out.println("c1 & c2 initialized");
! ]$ w" A% @* s% K' G$ _     }
4 E: i1 r" H$ D# [7 S2 l. V7 a(4)构建器的调用顺序* k* f: o& _; c$ H' B1 d
① 调用父类构造方法。这个步骤会不断重复下去,首先得到构建的是分级结构的根部,然后是下一个子类,等等。直到抵达最深一层的子类。
! q7 d% ]7 b3 C4 ~② 按声明顺序调用成员初始化模块。7 p, n# Y) i1 y% {! A+ s9 p
③ 调用子类构造方法的主体。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 03:06 , Processed in 0.265820 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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