static 靜態方法

/*static
1.成員修飾符
特點:
1.被靜態修飾的成員,可以直接被類名調用。
2.靜態成員優先於對象存在。
3.靜態成員隨着類的加載而加載,隨着類的消失而消失。靜態成員的生命週期很長。

注意事項:
1.靜態方法只能訪問靜態成員,不能訪問非靜態成員,這就是靜態方法訪問的限制。
2.靜態方法中不能出現this和super。
3.主函數是靜態的。

什麼時候用靜態修飾?
1.成員變量:如果數據在所以對象中都是一樣,直接用靜態方法修飾。
2.成員函數:如果函數沒有訪問過對象中的屬性,那麼該函數就是靜態的。

成員變量和靜態變量的區別?
1.名稱上區別
  成員變量也叫實例變量
  靜態變量也叫類變量
2.內存存儲上的區別?
  成員變量存儲在堆內存中
  靜態變量存儲在方法區的靜態區中
3.生命週期不同
  成員變量隨着對象的出現而出現,隨着對象的消失而消失。
  靜態變量隨着類的出現而出現,隨着類的消失而消失。
  
  類的消失:參考java垃圾回收機制。
  具體內存分佈情況參考:附件

*/

class Person{
    
    private String name;
    private int age;
    static String country ="CN";
    
    Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    
    public void show(){
        
        System.out.println("name="+name+"age="+age);
    }
    
    public static void sleep(){
        
        System.out.println("睡覺");
    }
    
}

class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Person p=new Person("lisi",21);
        p.sho
        person.sleep();
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章