zoukankan
html css js c++ java
一个研究java迭代类初始化顺序的程序
package
base;
abstract
class
base
{
public
int
age
=
getNumber(
100
);
static
{
System.out.println(
"
base static block
"
);
}
{
System.out.println(
"
base nonstatic block
"
);
}
static
int
sage
=
getNumber(
50
);
base()
{
System.out.println(age);
System.out.println(
"
base start
"
);
draw();
//
会调用子类覆盖后的方法
System.out.println(
"
base end
"
);
}
static
int
getNumber(
int
base)
{
System.out.println(
"
base.getNumber int
"
+
base);
return
base;
}
public
void
draw()
{
System.out.println(
"
base.draw
"
);
}
}
public
class
initializeOrder
extends
base
{
public
int
age
=
getNumber(
1001
);
private
int
_radius
=
getNumber(
10
);
static
int
sage
=
getNumber(
250
);
static
{
System.out.println(
"
subclass static block
"
);
}
{
System.out.println(
"
subclass nonstatic block
"
);
}
initializeOrder(
int
radius)
{
_radius
=
radius;
System.out.println(age);
System.out.println(
"
initializeOrder initialized
"
);
}
public
void
draw()
{
System.out.println(
"
initializeOrder.draw
"
+
_radius);
}
/** */
/**
*
@param
args
*/
public
static
void
main(String[] args)
{
//
TODO Auto-generated method stub
new
initializeOrder(
1000
);
}
/**/
/*
总结:
1、类只有在使用New调用创建的时候才会被JAVA类装载器装入
2、JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的
静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同
先初始化父类的静态代码--->初始化子类的静态代码-->
初始化父类的非静态代码--->初始化父类构造函数--->
初始化子类非静态代码--->初始化子类构造函数
3、创建类实例时,首先按照父子继承关系进行初始化
4、类实例创建时候,首先初始化块部分先执行,然后是构造方法;然后从
本类继承的子类的初始化块执行,最后是子类的构造方法
5、类消除时候,首先消除子类部分,再消除父类部分
*/
}
查看全文
相关阅读:
android判断程序是否前台显示---及判断屏幕是否是亮的----附赠BAIDU定位的工具类实现代码
Lock and synchronized 摘自官网, 摘录下来方便笔记
SQLite 基础
如何stop,suspend一个线程 在deprecated的情况下
HashMap 的遍历 for:each 和EntrySet两种方法
ListView图片异步加载与缓存策略
android debug学习笔记 monkeyrunner
回溯法和DFS leetcode Combination Sum
leetcode Count and Say
leetcode Jump Game I II 待续 贪心看不懂啊!!!!
原文地址:https://www.cnblogs.com/Finding2013/p/243132.html
最新文章
shell:shell 创建多个指定大小的文件,循环删除指定大小文件
Robot Framework:导入Selenium2LIbrary失败
web自动化笔记
Fedora下添加gsl库
DSDT亮度修复成功
DSDT亮度修复失败
Inspirision 5537 Clover引导win7 + Yosemite
uvaoj104
Clover引导 win8+yosemite+ubuntu
log5: CLOVER 引导 yosemite 原生系统
热门文章
markov chain
log4:touchpad and keyboard don't work after computer sleep
log1:参数估计
python工具的安装
比较两个日志中相同的uid(做七日留存)
Sony本如何进入biso设置
Ubuntu上安装python-selenium
mysql 备忘录
MyEclipse Bule 6.5的注册码生成器 java版
Intent和bundle的传值
Copyright © 2011-2022 走看看