更新时间:2022-11-29 11:03:24 来源:极悦 浏览864次
Java类的初始化是什么?极悦小编来告诉大家。
顺序依次是:
类的静态部分(静态代码块 + 静态域(类的static变量))
非静态部分(构造代码块 + 非静态域)
构造器
class Demo{
Demo(int id){
System.out.println("DEMO "+ id);
}
}
public class InitTest {
Demo d = new Demo(0);
static Demo d1 = new Demo(1);
InitTest(){
System.out.println("InitTest");
}
{
System.out.println("构造代码块");
}
static {
System.out.println("静态代码块");
}
static Demo d2 = new Demo(2);
Demo d3 = new Demo(3);
public static void main(String[] args) {
new InitTest();
}
}
/*
DEMO 1
静态代码块
DEMO 2
DEMO 0
构造代码块
DEMO 3
InitTest
*/
2.继承中的初始化顺序
父类的静态部分(静态代码块 + 静态域(类的static变量))
子类的静态部分(静态代码块 + 静态域(类的static变量))
父类的非静态部分(构造代码块 + 非静态域)
父类的构造器
子类的非静态部分(构造代码块 + 非静态域)
子类的构造器
class Other{
Other(String str){
System.out.println(str + "调用");
}
}
class Sup{
Other s0 = new Other("父类Others0");
Sup(){
System.out.println("父类的默认构造");
}
Sup(int id){
System.out.println("Sup " + id);
}
static Other s1 = new Other("父类static Others1");
static {
System.out.println("父类的静态代码块");
}
static Other s2 = new Other("父类static Others2");
Other s3 = new Other("父类Others3");
{
System.out.println("父类的构造代码块");
}
}
class Sub extends Sup{
Other s0 = new Other("子类Others0");
Sub(){
System.out.println("子类的默认构造");
}
Sub(int id){
System.out.println();
}
static Other s1 = new Other("子类static Others1");
{
System.out.println("子类的构造代码块");
}
static {
System.out.println("子类的静态代码块");
}
Other s2 = new Other("子类Others2");
static Other s3 = new Other("子类static Others3");
}
public class InheritInit {
public static void main(String[] args) {
new Sub();
}
}
/*
父类static Others1调用
父类的静态代码块
父类static Others2调用
子类static Others1调用
子类的静态代码块
子类static Others3调用
父类Others0调用
父类Others3调用
父类的构造代码块
父类的默认构造
子类Others0调用
子类的构造代码块
子类Others2调用
子类的默认构造
*/
以上就是关于“一文了解Java类的初始化”介绍,大家如果想了解更多相关知识,不妨来关注一下本站的Java教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助哦。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习