1. 程式人生 > >JAVA基礎之Static

JAVA基礎之Static

共享 創建 輸出 -- 私有變量 oid print 名稱 一個

  • static關鍵字

    1. static:靜態成員,類成員
    public static int price;//靜態屬性或者叫類屬性
    public static String outName(){//靜態方法和類方法
    }
    1. 特點

      1. 類產生的對象共享同一個內存空間
      2. 類加載時產生,銷毀時釋放,聲明周期長
      3. 只能加在屬性或者方法名稱的前面
      4. 在成員方法(非靜態方法)中可以調用靜態方法
      5. 在靜態方法中不可以調用非靜態成員,只能調用靜態成員
    2. 代碼實現

      package com.imooc.animal;
      
      public class cat {
         //聲明私有變量
         public static String name;
         public String outName() {
             return this.name;
         }
      }

      主程序

      package com.imooc.animal;
      
      public class catTest {
         public static void main(String[] args) {
             cat one=new cat();//聲明並實例化
             cat.name="帥虎";//這裏既可以用對象名one,也可以用類名(cat--推薦)
              //同理,調用靜態方法的時候也可以用類名或者對象名
             System.out.println(one.outName());
         }
      }

      輸出:

      帥虎

  • 構造代碼塊和普通代碼塊

    普通代碼塊:代碼塊內按照語句的順序執行

    構造代碼塊: 在對象被創建的時候調用,優於構造方法執行

    靜態代碼塊: static+構造代碼塊,優於構造代碼塊執行

    類:

    package com.imooc.animal;
    
    public class cat {
      public cat() {
          System.out.println("我是構造方法");
      }
      {//構造代碼塊
          System.out.println("我是構造代碼塊");//首先輸出
      }
      static {//靜態代碼塊
          System.out.println("我是靜態代碼塊");
      }
    }

    主函數:

    package com.imooc.animal;
    
    public class catTest {
      public static void main(String[] args) {        
          cat two=new cat();
      }
    }
    

    結果:
    我是靜態代碼塊
    我是構造代碼塊
    我是構造方法

JAVA基礎之Static