java中static修改成員變量和函數和其他使用


一、通過static修飾的成員變量初始化只會初始化一次

 

//靜態變量初始化只會初始化一次
public class zuishuai {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //double[] my = new double[14];
        people a = new people();
        a.num+=1;
        System.out.println("現已創建人數:"+a.num);
        a.num+=1;
        System.out.println("現已創建人數:"+a.num);
        a.num+=1;
        System.out.println("現已創建人數:"+a.num);
    }

}
class people{
    public static int num;
    public people() {
        num=0;
    }
}
/*
輸出:
 現已創建人數:1
現已創建人數:2
現已創建人數:3
*/

靜態代碼塊中:

當new一個類對象時,static修飾的成員變量首先被初始化,隨后是普通成員,最后調用Person類的構造方法完成初始化。也就是說,在創建對象時,static修飾的成員會首先被初始化

並且,當再次new該類的對象時,static修飾的類成員不會被再次初始化,在程序運行過程中,static只會在第一次new時被初始化

 

 

 

二、static修飾的方法可以無需實例化直接調用

 

 

 

 

//靜態static修飾的方法可以無需實例化直接調用
public class zuishuai {
    
    public static void main(String[] args) {
        people a = new people();
        people.opetor();
        //people.opetor1(); 直接調用會報錯
        a.opetor1();
    }

}
class people{
    public static int num;
    public people() {
        num=0;
    }
    public static void opetor() {
        System.out.println("執行靜態方法");
    }
    public void opetor1() {
        System.out.println("執行非靜態方法");
    }
}

 

 

 

 

三、在把這個類導入其他java文件時,可以不用實例化直接調用static修飾的方法

主類:

 

package qmh;
import qmh.people;

public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        people.opetor();
    }

}

 

 

 

people類:

 

package qmh;

class people{
    public static int num;
    public people() {
        num=0;
    }
    public static void opetor() {
        System.out.println("執行靜態方法");
    }
    public void opetor1() {
        System.out.println("執行非靜態方法");
    }
}

 

 

 

結果輸出:

執行靜態方法

 


免責聲明!

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



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