Java类的初始化1

1、类中的属性是按照先初始化static变量然后,顺序依次初始化其它非静态的:

class Test
{
    public static void main(String[]args)
    {
        NoName noName=new NoName();
         System.out.println("-----------------------------");
        NoName noName1=new NoName();
    }
}
class T{
    T(int order){
        System.out.println("order: "+order);
    }
}
class NoName{
    T t1=new T(1);
    NoName(){
        System.out.println("Noname");
        t3=new T(33);
    }
    T t2=new T(2);
    void f(){
        System.out.println("f()");
    }
    T t3=new T(3);
    static T t4=new T(4);
}

输出结果:

order: 4
order: 1
order: 2
order: 3
Noname
order: 33
-----------------------------
order: 1
order: 2
order: 3
Noname
order: 33

Process finished with exit code 0

说明:这里先初始化t4,并且只是被初始化了一次,然后t1、t2、t3是依次初始化, 并且t3被初始化了4次,分两次定义NoName的变量时,每次中第一次是在调用构造函数之前, 第二次是调用构造函数的时候。
2、无论创建多少对象同一个static变量只会被创建一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值