首先先附上一段代码: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. CentOS7.6中mysql实践

    cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 使用:yum -y install mysql mysql-server 安装 ...

  2. 'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    一定要发现自己的问题不要盲目从众 1.把maven的安装包解压 2.配置环境变量 3.配置path路径 4.在dos下测试一下 结果出现:'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文 ...

  3. 【原创】(四)Linux内存模型之Sparse Memory Model

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  4. Java,Python,前端,Linux,公众号等5T编程资源整理免费下载

    场景 我的CSDN: https://blog.csdn.net/BADAO_LIUMANG_QIZHI 实现 马士兵Java学习视频 方立勋JavaWeb 尚硅谷Python核心基础 数据分析 机器 ...

  5. SqlServer还原数据库时提示:异常终止,不能在此版本的SQL Server中启动,因为它包含分区函数

    场景 在SqlServer Management中进行数据库还原时提示: 数据库不能在此版本的SQL Server中启动,因为它包含分区函数. 点击左下角的查看详细信息 实现 电脑上安装的是SQL S ...

  6. maven下载jar包源码配置

    两个依赖,就想下mail的源码包,因该怎么 <dependencies> <dependency> <groupId>javax.mail</groupId& ...

  7. 怎么在本地建立一个Maven 项目push到码云(https://git.oschina.net)

    本地建立一个的mvan项目不使用SmartGit push到码云上. 1 首先在自己码云的建立一个maven 空项目 2 然后打开STS(Spring Tool Suite)   新建一个Maven( ...

  8. nginx 模块

    8.nginx开启目录浏览 提供下载功能 默认情况下,网站返回index指定的主页,但如果该网站不存在主页,则将请求交给autoindex模块 ##### 如果开启autoindex模块,则提供一个下 ...

  9. C# 缓存的实现

    缓存的实现 我们不是做第三方比如Redis等的缓存实现,而是根据实际情况,基于C#上做一些环境变量的保存,方便项目使用. 1.系统全局变量 很多时候,在系统运行开始,需要对系统的运行参数进行保存,以便 ...

  10. 使用Spring中的PropertyPlaceholderConfigurer读取文件

    目录 一. 简介 二. XML 方式 三. Java 编码方式 一. 简介 大型项目中,我们往往会对我们的系统的配置信息进行统一管理,一般做法是将配置信息配置与一个cfg.properties 的文件 ...