Java中的局部代碼塊、構造代碼塊、靜態代碼塊


局部代碼塊:

作用:控制變量的生命周期;

在程序中,當我們已經使用完 x 后,並且在接下來的代碼中,不會再用到x,那么就沒必要讓x 在內存中占用空間了,這用情況下,可以使用 局部代碼塊,將x及其所設計到的區域封裝為局部代碼塊,他們在程序執行中順序不變,只是在執行完成后消失。

表現形式,以代碼體現如下:

 

    class TestDemo  
    {  
        public static void main(String[] args)  
        {  
            {  
                int x = 9;  
                System.out.println(x);  
            }  
      
            System.out.println("Hello World !");  
        }  
    }  

 

構造代碼塊:

作用:它可以給所有對象進行初始化
存在於:類中。
當類中的構造方法以重載的形式存在時,並且有共同成員變量或共同的方法時,可以通過構造代碼塊對其進行初始化;這樣可以減少代碼的重復!

 

class Person
{
    private String name;
    private int age;

    {
        System.out.println("cons code run !");
        
    } 

    Person() // 給對應的對象進行初始化
    {
        System.out.println("Person Now:RUN !");
        System.out.println("eat————");
    }

    Person (String name , int age)
    {
        this.name = name ;
        this.age= age;
        System.out.println(this.name + "————" + this.age);
        System.out.println("eat————");
    }
    
}
class ConsCodeDemo
{
    public static void main(String[] args)
    {
        Person p = new Person();
        Person p1 = new Person("LiSi" , 23);
    }
}

 

我們可以看到類Person中 重載的構造方法中有共同的代碼System.out.println("eat————");我們可以將他封裝進構造代碼塊,用來給各種進行初始化。

優化后,代碼體現為:

 

class Person
{
    private String name;
    private int age;

    {
        System.out.println("cons code run !");
        eat();
        
    } 

    Person() // 給對應的對象進行初始化
    {
        System.out.println("Person Now:RUN !");
    }

    Person (String name , int age)
    {
        this.name = name ;
        this.age= age;
        System.out.println(this.name + "————" + this.age);
    }
    public void eat()
    {
        System.out.println("eat————");
    }
    
}
class ConsCodeDemo
{
    public static void main(String[] args)
    {
        Person p = new Person();
        Person p1 = new Person("LiSi" , 23);
    }
}

 

靜態代碼塊:

特點:

1. 隨着類的加載而執行,而且只一次。
2. 優先於主函數執行。

作用:給類進行初始化。

當類中的方法都被靜態了化,並且構造方法被private了,這是我們不能,在將這個類實例化,然而又想讓類增加一些屬性,就可以使用靜態代碼塊:

表現形式,以代碼體現如下:

 

class StaticCode
{
    static 
    {
        System.out.println("A");
    }
    public void show()
    {
        System.out.println("Hello World !");
    }
}
class StaticCodeDemo
{
    static 
    {
        System.out.println("B");
    }
    public static void main(String[] args)
    {
        new StaticCode().show();
    }
    static
    {
        System.out.println("C");
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM