您的位置:首页 > 编程语言 > Java开发

JAVA中初始化顺序复习

2012-07-23 11:15 274 查看
转自:http://www.cnblogs.com/loulijun/archive/2012/02/12/2348318.html

static final、static、final区别
static:静态,全局变量,类的对象共享一个静态变量,只初始化一次。

final:常量,如果是方法则不可覆盖,如果是类不可被继承,必须初始化时设置值,设置后就不能改了

static final:静态变量

初始化顺序如下:
父类静态变量(静态初始化话块)> 子类静态变量(静态初始化块)>父类普通变量(普通初始化块)>父类构造方法>父类普通方法

>子类普通变量(普通初始化块)>子类构造方法>子类普通方法

下面是一个例子就说明了这一切

package com.loulijun.test1;

public class Test1 {
public static void main(String args[])
{
Son son = new Son();
son.say();
}
}

class Father
{

//static final 与 static 没有执行先后顺序,按照代码顺序从上而下执行
//静态变量
public static String str = initStr("Father:静态变量---1");
//静态常量
public static final int i = initfinal(2);
//普通变量
public int j = init(4);

static int initfinal(int i)
{
System.out.println("Father:静态常量---"+i);
return i;
}
static int init(int j)
{
System.out.println("Father:普通变量---"+j);
return j;
}
//静态初始化块
static
{
System.out.println("Father:静态初始化块---3");
}
static String initStr(String str)
{
System.out.println(str);
return str;
}

//初始化块
{
System.out.println("Father:普通初始化块---5");
}
//构造方法
public Father()
{
System.out.println("Father:父类构造器---6");
}

public void say()
{
System.out.println("Father:普通方法---7");
}

}

class Son extends Father
{
//static final 与 static 没有执行先后顺序,按照代码顺序从上而下执行
//静态变量
public static String str = initStr("Son:静态变量---1");
//静态常量
public static final int i = initfinal(2);
//普通变量
public int j = init(4);
static int initfinal(int i)
{
System.out.println("Son:静态常量---"+i);
return i;
}
static int init(int i)
{
System.out.println("Son:普通变量---"+i);
return i;
}
//静态初始化块
static
{
System.out.println("Son:静态初始化块---3");
}
static String initStr(String str)
{
System.out.println(str);
return str;
}

//初始化块
{
System.out.println("Son:普通初始化块---5");
}
//构造方法
public Son()
{
System.out.println("Son:子类构造器6");
}

public void say()
{
System.out.println("Son:普通方法---7");
}
}

运行结果:

Father:静态变量---1

Father:静态常量---2

Father:静态初始化块---3

Son:静态变量---1

Son:静态常量---2

Son:静态初始化块---3

Father:普通变量---4

Father:普通初始化块---5

Father:父类构造器---6

Son:普通变量---4

Son:普通初始化块---5

Son:子类构造器6

Son:普通方法---7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java string class