首先先附上一段代码:public class InitializeBlockDemo {

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{
  //
  
  //public int field=100;
  //
{
field=200;
} public int field=100; public InitializeBlockClass(int value){
this.field=value;
} public InitializeBlockClass(){ }
}

  下面开始介绍一下,在Java中字段的初始化规律,通常使用三种方法:类成员定义的默认值,类的构造方法,类的初始化块。

  1、成员定义的默认值

public int field=100;

  通常我们在定义一个变量时,往往会赋予一个初始值。因此在创建类的对象时,便能给于初值。

  2、类的构造方法

public InitializeBlockClass(int value){
this.field=value;
} public InitializeBlockClass(){ }

  类的构造方法,也就是C/C++所指的的“构造函数”,当创建一个对象的时候,其类的构造方法便会被自动调用。构造方法的命名方式很简单,与类名相同,没有返回值。根据参数的不同可以进行重载。当我们没有定义构造方法时,Java编译器会默认一个没有参数的构造方法,但当我们定义了构造方法,系统将不会提供默认的构造方法。因此在定义构造方法时,一定满足调用所需要的条件。

  3、类的初始化块

{
field=200;
}

  在类中使用“{”,“}”将语句包含,在内对成员进行初始化。

  当我们在调用时,其调用顺序又会是什么呢?经过对上述函数的改造,运行,我们可以得到结果,其运行顺序于调用的时间有关,取决于调用时成员的结果如上述程序,当调用的构造方法无参数时,其结果为field的最后得数 100,而将初始化块和定义顺序调过来时,其答案变为 200。在调用有参数的构造方法时,其答案便成了参数的结果 300。

Java字段初始化规律的更多相关文章

  1. Java字段初始化规律:

    Java字段初始化规律: Java进行初始化的地方有两个,初始化块和构造函数,其中初始化块又分为静态初始化块和实例初始化块(以上程序为实例初始化块).静态初始化块是类中由static修饰的初始化块,实 ...

  2. Java的字段初始化规律

    package 代码测试; public class InitializeBlockClass { {field=200;} public int field=100; public Initiali ...

  3. Java字段初始化的规律

    class InitializeBookClass { { field=200; } public int field=100; public InitializeBookClass(int valu ...

  4. java_字段初始化的规律、静态方法中访问类的实例成员、查询创建对象的个数

    字段初始化规律: 当执行如下代码时 class InitializeBlockClass{ public int field=100; { field=200; } public Initialize ...

  5. JAVA字段的初始化规律

    JAVA字段的初始化规律 1.类的构造方法 (1)“构造方法”,也称为“构造函数”,当创建一个对象时,它的构造方法会被自动调用.构造方法与类名相同,没有返回值. (2)如果类没有定义构造函数,Java ...

  6. java字段中初始化的规律与如何用静态成员函数调用非静态成员

    java字段中初始化的规律: 执行以下代码,出现的结果是什么? class InitializeBlockClass{ { field=200; } public int field=100; pub ...

  7. Java类初始化

    Java类初始化 成员变量的初始化和构造器 如果类的成员变量在定义时没有进行显示的初始化赋值,Java会给每个成员变量一个默认值 对于  char.short.byte.int.long.float. ...

  8. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

  9. java数组初始化

    java数组初始化 //静态初始化数组:方法一 String cats[] = new String[] { "Tom","Sam","Mimi&qu ...

随机推荐

  1. Java静态代码块、代码块及构造函数执行顺序

    根据以下程序进行分析 定义一个父类 package sas.LearnJava; public class ExcuteOrderTest { { System.out.println("我 ...

  2. spring boot使用AOP切面编程

    spring boot使用AOP 1.在pom文件中添加依赖: <!--spring boot aop切面--> <dependency> <groupId>org ...

  3. Python3实战Spark大数据分析及调度 (网盘分享)

    Python3实战Spark大数据分析及调度 搜索QQ号直接加群获取其它学习资料:715301384 部分课程截图: 链接:https://pan.baidu.com/s/12VDmdhN4hr7yp ...

  4. html5表单与Jquery Ajax配合使用

    html5的表单控件提供了很多格式检测功能,可以省去很多烦人的javascript验证代码,例如pattern属性和require属性,但触发的条件是表单提交,如果想通过ajax提交表单,就出现了不能 ...

  5. JAVA学习笔记—review基本知识[反射与异常]

    JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...

  6. Day 21 进程管理

    1.什么是进程 比如: 开发写的代码我们称为程序,那么将开发的代码运行起来.我们称为进程. 总结一句话就是: 当我们运行一个程序,那么我们将运行的程序叫进程. PS1: 当程序运行为进程后,系统会为该 ...

  7. Android服务之混合方式开启服务

    引言 前面介绍过了Android服务的两种开启方式:Start方式可以让服务在后台运行:bind方式能够调用到服务中的方法. 在实际的开发工作中,有很多需求是:既要在后台能够长期运行,又要在服务中操作 ...

  8. 最新2019Pycharm破解教程,附激活码!

    本教程仅用作个人学习,请勿用于商业获利,造成后果自负!!! Pycharm安装 在这插一个小话题哈,Pycharm只是一个编译器,并不能代替Python,如果要使用Python,还是需要安装Pytho ...

  9. WordPress安全防护攻略

    个人近期做了一个WordPress站点,目前处于内测阶段,虽然公网还没部署起来,但是先在这学习整理一下安全防护的问题. 第一:及时更新WordPress 由于33%的互联网都在使用WordPress站 ...

  10. Android Studio [RecyclerView/列表视图]

    LinearRecyclerViewActivity.java package com.xdw.a122.recyclerview; import android.graphics.Rect; imp ...