java 类里面直接写花括号{}和static{}

import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;


import javax.annotation.PostConstruct;


class T {
static {
System.out.println("1");
}


{
System.out.println("2");
}


T() {
System.out.println("父类构造");
}
public static void got(){
System.out.println("调用T类的方法,静态方法");
}
static {
System.out.println("3");
}
{
System.out.println("4");
}
}


public class Test extends T {

public Test() {
System.out.println("子类构造函数");
}
static {
System.out.println("5");
}
{
System.out.println("6");
}


public static void main(String[] args) {

/* Test t = new Test();

t.get();

System.out.println("=====================");
Test.got();
System.out.println("=====================");*/
Test.post();
}

public void get(){
System.out.println("调用Test类的方法");
}

public static void post(){
System.out.println("调用Test类的静态方法");
}
static {
System.out.println("7");
}
{
System.out.println("8");
}
}


new Test()时,输出1 3 5 7 2 4 父类的构造 6 8 子类的构造

调用Test类的内部get方法输出 1 3 5 7 2 4 父类的构造 6 8 子类的构造 调用Test类的方法

Test.got()时输出 1 3 5 7 调用T类的方法,静态方法
Test.poot()时输出 1 3 5 7 调用Test类的静态方法

其实再累内部{}只是代表在调用构造函数之前在{}中初始化,static{}只在类加载时调用


new子类的对象时,先调用父类staic{}里的东西,在调用子类里的static{},在调用父类{}的在调用父类构造方法,在调用子类构造方法

调用子类或者父类的静态方法时,先调用父类的static{}在调用子类的static{}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值