zoukankan      html  css  js  c++  java
  • 从头认识java-4.7 构造器初始化(3)

    接着上一章节。

    (4)显性初始化静态域

    通过静态代码块来初始化某些属性域。

    package com.ray.testobject;
    
    public class Test {
    	private static int id;
    
    	private static String name;
    
    	static {
    		id = 0;
    		name = "abc";
    		System.out.println("id:" + id);
    		System.out.println("name:" + name);
    	}
    
    	public static int getId() {
    		return id;
    	}
    
    	public static void main(String[] args) {
    		// new Test();
    		System.out.println(Test.getId());
    	}
    }
    

    如果我们把new Test()放开,得到也是下面的结果。因为代码块只会执行一次。


    输出:

    id:0
    name:abc
    0

    我们下面在给一个例子:

    package com.ray.testobject;
    
    public class Test {
    
    	private static int id = 0;
    	private static String name;
    
    	static {
    		System.out.println("id:" + id);
    		name = "abc";
    		System.out.println("name:" + name);
    	}
    
    	public Test() {
    		System.out.println("create Test");
    	}
    
    	public static void main(String[] args) {
    		new Test();
    		new Test();
    	}
    }
    


    输出:

    id:0
    name:abc
    create Test
    create Test

    (5)初始化非静态域

    package com.ray.testobject;
    
    public class Test {
    
    	private String name;
    
    	{
    		name = "abc";
    		System.out.println("name:" + name);
    	}
    
    	public static void main(String[] args) {
    		new Test();
    		new Test();
    	}
    }
    


    输出:

    name:abc
    name:abc

    初始化非静态域,每一次的new,代码块都会执行一次。

    总结:这一章节主要讨论了显性初始化静态域,以及初始化非静态域。

    这一章节就到这里,谢谢。

    -----------------------------------

    目录

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    L1-047 装睡 (10分)
    QT 文件的读写,将txt中的数据存储到QVector
    C++Primer第五版 第十二章 动态内存
    C++Primer第五版 第十一章 关联容器
    从《上瘾》到 《不被干扰》
    MySQL模糊查询用法(正则、通配符、内置函数等)
    MySQL-SQL优化总结
    MySQL中特别实用的几种SQL语句
    public、private、protected 和 default
    DO,DTO,VO,POJO详解
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4944471.html
Copyright © 2011-2022 走看看