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、类消除时候,首先消除子类部分,再消除父类部分
*/
}
查看全文
相关阅读:
CodeBlocks 中fopen函数不支持命令 “r”
【转载】分享一些Qt学习资源,欢迎下载
【转载】知乎答案----孙志岗----Google 发布了程序员养成指南,国内互联网巨头是否也有类似的指南和课程推荐
【转载】谷歌公司推荐的程序员必修课(英文教程)
【转载】张逸--ThoughtWorks(中国)程序员读书雷达
在windows环境下,为什么要用Notepad++编辑?
【转载】池建强--趣谈个人建站
JAVA入门第二季 第一章 类和对象
CAP理论总结
分布式通信方式之消息队列之RocketMQ
原文地址:https://www.cnblogs.com/Finding2013/p/243132.html
最新文章
tv
update-flashplugin-nonfree --install
install font
hadoop namespace
gnome-screensaver
strace -o /tmp/dhc$$ dhclient -d eth2
expect
awk
Python:网络编程
Python:设计模式介绍
热门文章
Python:面向对象(二)
Python:反射和面向对象(一)
Python:模块(二)
Python:Python基础(三)
Python:模块(一)
Python:正则表达式
Python:递归和装饰器
Python:Python基础(二)
The differences between Java application and Java applet
Qt资源下载、安装、配置
Copyright © 2011-2022 走看看