package com.cwcec.test;

class Fu
{
int num = 5;
//构造代码块
{
System.out.println("Fu constructor code..." + num);
num=6;
}
public Fu() {
System.out.println("Fu constructor ..." + num);
show();
} void show() {
System.out.println("show ..." + num);
} } class Zi extends Fu
{
int num = 9;
//构造代码块
{
System.out.println("Zi constructor code..." + num);
num = 10;
}
public Zi()
{
System.out.println("Zi constructor ..." + num);
}
void show()
{
System.out.println("show ..." + num);
}
} public class FieldDemo
{
public static void main(String[] args)
{
new Zi();
} }
Output:
Fu constructor code...5
Fu constructor ...6
show ...0
Zi constructor code...9
Zi constructor ...10
 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

class Animal
{
public String name = "Ti";
public static int age = 10;
static
{
System.out.println("Animal age : " + age); }
public Animal()
{
age = 100;
System.out.println("Animal constructor...");
} public void display()
{
System.out.println("name: " + name);
} } class Dog extends Animal
{ public static int size = 20;
static
{ System.out.println("Dog size : " + size);
} public Dog()
{
size = 200;
System.out.println("Dog constructor...");
} public static void sleep() {
System.out.println("Dog sleep...");
} } public class Single
{ public static void main(String[] args) { Dog dog = new Dog();
}
}

总结

1.执行的大致顺序如下,

  (1) 在一个不存在继承的类中:初始化static变量,执行static初始化快-->初始化普通成员变量(如果有赋值语句),执行普通初始化块-->构造方法

  (2)在一个存在继承的类中:初始化父类static成员变量,运行父类static初始化块-->初始化子类static成员变量,运行子类static初始化块-->初始化父类实例成员变量(如果有赋值语句),执行父类普通初始化块-->父类构造方法-->初始化子类实例成员变量(如果有赋值语句)及普通初始化块-->子类构造方法。

Java 成员初始化顺序的更多相关文章

  1. Java成员初始化顺序

    //类装载时: 1, 基类static成员 2, 派生类static成员 //创建对象时: 3, 基类构造函数 4, 派生类构造函数

  2. Java中的成员初始化顺序和内存分配过程

    Java中的成员初始化顺序和内存分配过程 原帖是这样描述的: http://java.dzone.com/articles/java-object-initialization?utm_source= ...

  3. Java类的成员初始化顺序

    Java类的成员初始化顺序 2017-06-01 代码: public class InitializeSequence { public static void main(String[] args ...

  4. java类的成员初始化顺序和初始化块知识

    java类的成员初始化顺序和初始化块知识 转自:http://blog.csdn.net/lgfeng218/article/details/7606735 属性.方法.构造方法和自由块都是类中的成员 ...

  5. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

  6. java继承 初始化顺序

    java继承 初始化顺序 标签: 初始化顺序 2013-08-01 10:13 879人阅读 评论(0) 收藏 举报  分类: java(8)  版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  7. Java变量、Java对象初始化顺序

    局部变量与成员变量: 局部变量分为: 行参:在方法签名中定义的局部变量,随方法的结束而凋亡. 方法内的局部变量:必须在方法内对其显示初始化,从初始化后开始生效,随方法的结束而凋亡. 代码块内的局部变量 ...

  8. C++成员初始化顺序

    #include <iostream> using namespace std; int seti() {cout << "seti" << e ...

  9. JAVA的初始化顺序:

    JAVA的初始化顺序: 父类的静态成员初始化>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造 ...

随机推荐

  1. php 二位数组排序

    $member_ship_level 是一个二维数组 $res = array_column($member_ship_level,'integral'); array_multisort($res, ...

  2. tp5 接入腾讯对象存储COS

    以前写过一个接入阿里的OSS对象存储的,现在又简单写了个 腾讯COS对象存储. 这里只有COS使用方式,如果对接TP上传 可以去参考 :http://www.cnblogs.com/inkwhite/ ...

  3. sqli-labs(less-11-16)

    POST登入 首先试试 uname=admin'# & passwd=1 登入成功 如果不知道用户名 ,注释符被过滤,可以从password入手 一般第一个登陆字段(一般是用户名)就用注释,第 ...

  4. 复数 一级ADT实现

    COMPLEX.h /* typedef struct { float RE; //实部 float IM; //虚部 }Complex; */ typedef struct complex * Co ...

  5. 希尔伯特曲线——第八届蓝桥杯C语言B组(国赛)第三题

    原创 标题:希尔伯特曲线 希尔伯特曲线是以下一系列分形曲线 Hn 的极限.我们可以把 Hn 看作一条覆盖 2^n × 2^n 方格矩阵的曲线,曲线上一共有 2^n × 2^n 个顶点(包括左下角起点和 ...

  6. 001---mysql

    Mysql数据库 数据库相关概念 数据库服务器:运行数据管理软件的计算机 数据库:顾名思义数据仓库,是一个文件夹.存储多个文件(数据表) 数据表:对应一个文件,存储在数据库下 数据:对应文件中的每一行 ...

  7. 20155206 2016-2017-2 《Java程序设计》第4周学习总结

    20155206 2006-2007-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承: 避免多个类间重复定义共同行为,在编写程序的过程中可能会出现部分代码重复的现象,把重复 ...

  8. PGP的原理与使用

    实验名称: PGP的原理与使用 姓名: 刘浩 20155307 任泓霖 20155319 班级: 1553 日期: 2017.10.16 一. 实验环境 Windows虚拟机下使用的是PKZIP2.0 ...

  9. 20155307 2016-2017-2 《Java程序设计》第10周学习总结

    20155307 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程:就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据 ...

  10. PHP学习笔记之析构函数以及static,self,parent关键字

    引用 $jordan1 = &$jordan; 当jordan1 = null; //此时会直接调用析构函数 而当无&时,就需要等到所有的引用都为null时,才调用析构函数析构  乔丹 ...