1、java字段初始化的规律

public class gouzao {

public static void main(String[] args) {
test te=new test();
System.out.println(te.field);
te=new test(300);
System.out.println(te.field);
}

}

package text9;

public class test {
{
field=100;
}
public int field=100;
public test(int value) {
this.field=value;
}
public test() {

}
}

结果

100

300

该初始化快的值初始化块和字段的初始值无关,该变量的数值大小取决于初始化块和设定的字段的初始值先后关系,Java会将最后一次的初始化结果赋给该变量。

2.

package com;

class Root
{
static{
System.out.println("Root的静态初始化块");
}
{
System.out.println("Root的普通初始化块");
}
public Root()
{
System.out.println("Root的无参数的构造器");
}
}
class Mid extends Root
{
static{
System.out.println("Mid的静态初始化块");
}
{
System.out.println("Mid的普通初始化块");
}
public Mid()
{
System.out.println("Mid的无参数的构造器");
}
public Mid(String msg)
{
//通过this调用同一类中重载的构造器
this();
System.out.println("Mid的带参数构造器,其参数值:" + msg);
}
}
class Leaf extends Mid
{
static{
System.out.println("Leaf的静态初始化块");
}
{
System.out.println("Leaf的普通初始化块");
}
public Leaf()
{
//通过super调用父类中有一个字符串参数的构造器
super("Java初始化顺序演示");
System.out.println("执行Leaf的构造器");
} } public class TestStaticInitializeBlock
{
public static void main(String[] args)
{
new Leaf(); }
}

  

有结果可以看的执行顺序是先父类后子类执行初始化快,之按普通初始化、无参数、有参数的构造器顺序执行也是先父类后子类,若执行子类需要向父类传参则先执行父类则执行子类。

3、

package text9;

public class gouzao {

	public static void main(String[] args) {
gouzao gou1=new gouzao();
gouzao gou2=new gouzao();
gouzao gou3=new gouzao();
gouzao gou4=new gouzao();
System.out.println("总共创建的对象个数"+n);
} static int n=0;
public gouzao()
{
n++;
}
}

  

此函数查看构造函数被调用了多少次。

4.

package text9;

public class gouzao
{
int x = 3;//类的实例变量
public static void fw()//静态方法
{
System.out.println("实例变量x = " + new gouzao().x);
//需要先实例化之后才可以访问。
} public static void main(String[] args)
{
gouzao.fw();
gouzao gou = new gouzao();
System.out.println("x = " + gou.x);
}
}

  

在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有将其实例化这种方式。也就是说,调用静态方法可以无需创建对象

最新文章

  1. 無間道III 終極無間
  2. Coding源码学习第一部分(AppDelegate.m)
  3. 推荐25款很棒的 HTML5 开发框架和开发工具【上篇】
  4. eclipse failed to load the jni jvm.dll
  5. SystemTap了解
  6. cocos2d-x CCScale9Sprite
  7. 156. Binary Tree Upside Down
  8. SQL Server 游标
  9. oracle的购买价格研究
  10. 根据首尾字节的tcp分包断包算法
  11. SQL菜鸟学习札记(二)
  12. 朴素贝叶斯分类法 Naive Bayes ---R
  13. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-模块管理按子系统进行分类管理
  14. 四边形不等式优化DP
  15. 逐帧动画抖动、适配布局、SVG Sprites
  16. Java实现把图片转成字符画
  17. Android RecycleView 自定义Item的使用
  18. python常用模块: random模块, time模块, sys模块, os模块, 序列化模块
  19. HTML5拖拽事件笔记
  20. Emacs显示光标在哪个函数

热门文章

  1. POJ 3177 Redundant Paths (tarjan边双连通分量)
  2. go语言 二叉树
  3. Java+Selenium+Testng自动化测试学习(二)
  4. AcWing 852. spfa判断负环 边权可能为负数。
  5. nfs 动态文件挂载读写权限设置
  6. vue+vuex项目中怎么实现input模糊查询
  7. RAID 5+备份硬盘实验:mdadm
  8. h5页面调用相机功能
  9. 粪发涂墙-redis1
  10. eclipse 切换主题Theme