首先先附上一段代码: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。

最新文章

  1. SQL面试笔试经典题(Part 1)
  2. mysql 远程连接数据库的二种方法
  3. CentOS_7.2编译安装PHP_5.6.20添加扩展模块
  4. flash flex 程序出现错误 Error #2032
  5. 一个CURL
  6. 2013 duilib入门简明教程 -- 总结 (20)
  7. ERWin 7.2下载安装及注册机
  8. Oracle sqlldr导入导出txt数据文件详解
  9. Tomcat6启用Gzip压缩功能
  10. TCP/IP协议原理与应用笔记23:路由选择模块 和 路由表的设计
  11. POJ 3393 Lucky and Good Months by Gregorian Calendar 模拟题
  12. 微软 Build 2016
  13. ACM暑期训练总结
  14. Python SMTP邮件发送
  15. Linux上静态库和动态库的编译和使用
  16. Java的内存管理机制之内存区域划分
  17. hdu4280 Island Transport 最大流
  18. vue各生命周期适合做的业务逻辑
  19. SOC中的DFT和BIST对比与比较-IC学习笔记(二)
  20. bzoj 2144: 跳跳棋——倍增/二分

热门文章

  1. 2019icpc南昌网络赛_I_Yukino With Subinterval
  2. python实现煲机脚本
  3. 【LeetCode】240-搜索二维矩阵 II
  4. 使用dubbo引用和发布服务时出现的异常:HTTP状态500 - 请求处理失败; 嵌套异常是com.alibaba.dubbo.rpc.RpcException:无法在服务cn.e3mall.service.ItemService中调用方法getTbItemById。使用dubbo版本2.5.3在消费者...
  5. Django ORM 知识点总结
  6. (七十)c#Winform自定义控件-饼状图
  7. Webpack 打包太慢? 试试 Dllplugin
  8. 树莓派3安装openwrt
  9. [LeetCode]sum合集
  10. elastic操作-索引重命名,索引副本数修改