zoukankan      html  css  js  c++  java
  • 初始化块

    一 初始化块介绍

    [修饰符]{

        //初始化块的可执行代码

        ......

    }

    修饰符只能是static,使用static修饰符的初始化块被称为静态初始化块。

    二 初始化块简单应用

    1 代码示例

    public class Person
    {
    	// 下面定义一个初始化块
    	{
    		int a = 6;
    		if (a > 4)
    		{
    			System.out.println("Person初始化块:局部变量a的值大于4");
    		}
    		System.out.println("Person的初始化块");
    	}
    	// 定义第二个初始化块
    	{
    		System.out.println("Person的第二个初始化块");
    	}
    	// 定义无参数的构造器
    	public Person()
    	{
    		System.out.println("Person类的无参数构造器");
    	}
    	public static void main(String[] args)
    	{
    		new Person();
    	}
    }

     2 运行结果

    Person初始化块:局部变量a的值大于4

    Person的初始化块

    Person的第二个初始化块

    Person类的无参数构造器

    3 结果分析

    从运行结果来看,当创建Java对象时,系统总是先调用该类里定义的初始化块,如果一个类里定义了2个普通初始化块,则前面定义的初始化块先执行,后面定义的初始化块后执行。

    三 初始化块与声明实例指定默认值语句执行顺序问题

    1代码示例

    InstanceInitTest.java  

    public class InstanceInitTest
    {
    	
    	// 先执行初始化块将a实例变量赋值为6
    	{
    		a = 6;
    	}
    	// 再执行将a实例变量赋值为9
    	int a = 9;
    	public static void main(String[] args)
    	{
    		// 下面代码将输出9。
    		System.out.println(new InstanceInitTest().a);
    	}
    }

    2运行结果

    9  

    3结果分析

    普通初始化块,声明实例变量指定默认值都认为是对象的初始化代码,它们的执行顺序与在源程序中排列顺序相同。

  • 相关阅读:
    重新学习MySQL数据库开篇:数据库的前世今生
    Java网络编程和NIO详解9:基于NIO的网络编程框架Netty
    测试小鲸鱼
    golang
    技术篇
    请求报文和响应报文
    编程
    测试
    PHP
    centos7.1 从源码升级安装Python3.5.2
  • 原文地址:https://www.cnblogs.com/ainima/p/6331651.html
Copyright © 2011-2022 走看看