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,代码块都会执行一次。

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

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

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

    目录

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

  • 相关阅读:
    android.permission
    Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
    人要怎样活在现实生活中
    viewpager---01
    Android ViewPager多页面滑动切换以及动画效果
    【205】C#实现远程桌面访问
    【204】显示3D大球球
    【203】利用UltraISO制作和刻录光盘映像的方法
    【202】ThinkPad手势&快捷键
    【201】SeaDAS代码
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4944471.html
Copyright © 2011-2022 走看看