java类的生命周期和this关键字一些理解.......欢迎勘误...........

稍稍研究了一下java类的生命周期...发出来分享一下........欢迎大家吐槽.......

 

我所猜测的java类底层的初使化顺序--在一个语言的底层是没有语法这个概念的,只有执行顺序

 

java类-->静态属性-->静态方法-->隐式类实例(this)-->实例属性-->实例方法-->构造方法

 

a 这就能解释为什么能在实例方法中调用静态方法,因为此时静态方法已经初使化

b 同样能解释为什么不能在静态方法中通过this来调用实例方法,因为在静态方法中调用this时,this和实例方法还未初使化;

c 这同样能够解释为什么在构造方法里面能调用任意的类成员方法,,,因为当调用构造方法时,类的其它成员已经全完初使化完成了..

d 构造方法中可以调用任意的类成员,反过来则不成立 .构造方法不能直接调用,只能配合new来创建类实例

附上俺的测试代码:

public class TestClass 
{
    private int a = 1;
    private static int b = 1;
    
    public  TestClass()    //构造方法中可以调用任意的类成员
    {
        this.fun();
        this.sFun();    //静态方法属于全体类实例 
        TestClass.sFun();
        System.out.print(this.a);
        System.out.print(this.b);    //静态属性属于全体类实例 
        System.out.print(TestClass.b);
        new TestClass();
    }
    
    private void fun()
    {
        new TestClass().sFun();
        this.sFun();
        
         new TestClass();
        // this.TestClass();    //报错,不能直接调用构造方法
    }
    
    private static void sFun()
    {
        //this.fun();    //静态方法中不能使用this来调用实例方法,只能通过构造方法创建实例来调用
        //TestClass.TestClass();    //报错,不能直接调用构造方法
        new TestClass().fun();
    }
    
    public static void main(String[] args)
    {
    }
}

 

原文地址:https://www.cnblogs.com/playerlife/p/2632334.html