Java 有关类字段的初始化
实例代码
package text;
public class MethodOverload {
    /**
     * @param args
     */
    public static void main(String[] args) {
        InitializeBlockClass obj=new InitializeBlockClass();
        System.out.println(obj.field);
        obj=new InitializeBlockClass(300);
        System.out.println(obj.field);
    }
}
class InitializeBlockClass{
    //下面这句在初始化块之前与之后,会影响到field字段的初始值
    //public int field=100;
    {
        field=200;
    }
    public int field=100;
    public InitializeBlockClass(int value){
        this.field=value;
    }
    public InitializeBlockClass(){
    }
}
运行结果

规律(类字段的初始化顺序)
1、执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。
2、执行类的构造函数。
类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。
以下代码为何无法通过编译?哪儿出错了?
public class Test {
        public static void main(String[] args) {
            Foo obj1 = new Foo();
        }
    }
    class Foo {
        int value;
        public Foo (int initValue) {
        value = initValue;
        }
    }
结论:如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。
Java 有关类字段的初始化的更多相关文章
- java中的多构造函数以及类字段的初始化顺序
		1.同一个类可以有多个构造函数,多个构造函数之间通过参数来区分.这是方法重载的一个实例.构造函数之间可以相互调用. 2.类的初始化块:可以在类中使用“{”和“}”将语句包围起来,直接将其作为类的成员. ... 
- JAVA字段的初始化规律
		JAVA字段的初始化规律 1.类的构造方法 (1)“构造方法”,也称为“构造函数”,当创建一个对象时,它的构造方法会被自动调用.构造方法与类名相同,没有返回值. (2)如果类没有定义构造函数,Java ... 
- Java类和对象初始化
		类的生命周期: Java类的初始化: 本阶段负责为类变量赋正确的初始值.(类变量即静态变量) Java编译器把所有的类变量初始化语句和静态初始化器通通收集到<clinit>方法中,该方法只 ... 
- Java JVM 类的连接与初始化 [ 转载 ]
		Java类的连接与初始化 (及2013阿里初始化笔试题解析) 转自http://www.cnblogs.com/iceAeterNa/p/4876747.html Java虚拟机通过 ... 
- JAVA类的创建: 创建JAVA的类 ,JAVA的字段,JAVA类的方法
		1. 创建Java的类 如果说Java的一切都是对象,那么类型就是决定了某一类对象的外观与行为.可是类型的关键字不是type,而是class,创建一个新的类型要用下面的代码: 1 2 3 class ... 
- java字段中初始化的规律与如何用静态成员函数调用非静态成员
		java字段中初始化的规律: 执行以下代码,出现的结果是什么? class InitializeBlockClass{ { field=200; } public int field=100; pub ... 
- java类什么时候初始化?
		Java虚拟机规范中并没有进行强制玉树什么情况下需要开始类加载过程.但是对于初始化阶段,虚拟机规范则是严格规定了有且仅有5种情况必须立即对类进行“初始化”(而加载,验证,准备自然需要在此之前开始): ... 
- Java 类加载机制(阿里)-何时初始化类
		(1)阿里的面试官问了两个问题,可以不可以自己写个String类 答案:不可以,因为 根据类加载的双亲委派机制,会去加载父类,父类发现冲突了String就不再加载了; (2)能否在加载类的时候,对类的 ... 
- Java 类成员的初始化顺序
		Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究. 1 无继承情况下的Jav ... 
随机推荐
- java程序启动脚本
			#!/bin/bash appName=`ls|grep .jar$` if [ -z $appName ] then echo "Please check that this script ... 
- BZOJ 3810 [Coci2015]Stanovi
			这讲真就是一篇显得自己认真做题的博客 因为真的比较习惯将培训所有的题都放到一篇博客中,又因为暑假好多培训,所以单题很少,这也是从博客中摘出来的 题目链接 如果合法,一定有一条贯穿整个矩形的线: dp[ ... 
- linux通信之信号
			一. 信号介绍 1.1. 什么是信号 1.1.1. 信号是内容受限的一种异步通信机制 a. 之所以称之为受限是因为通信内容在OS已经规定,内容简单,单一(signal.h文件中定义好) b. 信号本质 ... 
- 题解 AT2684 【K-City】
			此题这么水,竟然发题解的这么少. 本蒟蒻也来发一篇QwQ. 题目中所谓“四条街包围一个街区”其实就是两条街之间夹一个街区而已: n条街有几条两两相邻呢?答案是n-1条: m条街有几条两两相邻呢?答案是 ... 
- link标签中的integrity和crossorigin字段
			https://blog.csdn.net/SNP_fuyun/article/details/77113985?locationNum=10&fps=1 
- PHP实现支付宝小程序用户授权的工具类
			背景 最近项目需要上线支付宝小程序,同时需要走用户的授权流程完成用户信息的存储,以前做过微信小程序的开发,本以为实现授权的过程是很简单的事情,但是再实现的过程中还是遇到了不少的坑,因此记录一下实现的过 ... 
- golang 状态机
			package main import ( "errors" "fmt" "reflect" ) type State interface ... 
- Chrome开发者工具详解(五)之Network面板
			Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Network面板. Timeline面板.Profiles面板.Application面板.Se ... 
- OC+swift混编
			作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/34440159 转载请注明出处 如果觉得文章对你有所帮助,请通过留言 ... 
- Spring基础14——Bean的生命周期
			1.IOC容器中的Bean的生命周期方法 SpringIOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务.SpringIOC容器对Bean的生命周期进行管理 ... 
