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、类消除时候,首先消除子类部分,再消除父类部分
*/
}
查看全文
相关阅读:
Magicodes.IE之Excel模板导出教材订购表
【总结】《氨基酸新晋管理者领导力培训》第一次课_Day2_学习心得
【总结】《氨基酸新晋管理者领导力培训》第一次课_Day1_学习心得
【管理】从技术走向管理
python写入excel(xlswriter)--生成图表
python-写入excel(xlswriter)
python读取excel(xlrd)
python接口自动化测试(八)-unittest-生成测试报告
python接口自动化测试(六)-unittest-单个用例管理
python接口自动化测试(七)-unittest-批量用例管理
原文地址:https://www.cnblogs.com/Finding2013/p/243132.html
最新文章
--defaults-file 不能用?
MySQL读取配置文件的顺序、启动方式、启动原理
加速scp传输速度
Linux如何统计进程的CPU利用率[转]
MySQL 5.5主从关于‘复制过滤’的深入探究
如果误删了数据库分区的所有文件……
mysqldump详解之--master-data
mysqld_safe启动报错 mysqld_safe The file /usr/local/mysql/bin/mysqld does not exist or is not executable
天兔(Lepus)数据库监控系统快速安装部署
从MySQL全库备份中恢复某个库和某张表
热门文章
正确清理binlog日志
Sort_Buffer_Size 设置对服务器性能的影响
Magicodes.IE 在100万数据量下导入导出性能测试
Magicodes.SwaggerUI 已支持.NET Core 3.1
如何让Docker镜像飞起来
如何做好一个开源项目(一)
Magicodes.IE基础教程之导出Pdf
Magicodes.IE 2.0发布
【Magicodes.IE 2.0.0-beta1版本发布】已支持数据表格、列筛选器和Sheet拆分
自动构建自己的ASP.NET Core基础镜像
Copyright © 2011-2022 走看看