Java-static和math類。
一.static A:static關鍵字的特點 a:隨著類的載入而載入 b:優先於物件存在 c:被類的所有物件共享 舉例:咱們班級的學生應該共用同一個班級編號。 其實這個特點也是在告訴我們什麼時候使用靜態? 如果某個成員變數是被所有物件共享的,那麼它就應該定義為靜態的。 舉例: 飲水機(用靜態修飾) 水杯(不能用靜態修飾) d:可以通過類名呼叫 其實它本身也可以通過物件名呼叫。 推薦使用類名呼叫。 靜態修飾的內容一般我們稱其為:與類相關的,類成員 C.:static的注意事項 a:在靜態方法中是沒有this關鍵字的 如何理解呢? 靜態是隨著類的載入而載入,this是隨著物件的建立而存在。 靜態比物件先存在。 b:靜態方法只能訪問靜態的成員變數和靜態的成員方法 簡單記:靜態只能訪問靜態,非靜態可以訪問靜態的也可以訪問非靜態的 二.靜態變數和成員變數的區別。 A:所屬不同 靜態變數屬於類,所以也稱為類變數 成員變數屬於物件,所以也稱為例項變數(物件變數) B:記憶體中位置不同 靜態變數儲存於方法區的靜態區 成員變數儲存於堆記憶體 C:記憶體出現時間不同 靜態變數隨著類的載入而載入,隨著類的消失而消失 成員變數隨著物件的建立而存在,隨著物件的消失而消失 D:呼叫不同 靜態變數可以通過類名呼叫,也可以通過物件呼叫 成員變數只能通過物件名呼叫 三.Math類。 A:Math類概述 類包含用於執行基本數學運算的方法 B:Math類特點 由於Math類在java.lang包下,所以不需要導包。 沒有構造方法,因為它的成員全部是靜態的。 C:獲取隨機數的方法 public static double random():返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。 D:我要獲取一個1-100之間的隨機數,腫麼辦? int number = (int)(Math.random()*100)+1;
案例演示 public class game { public static void main(String[] args) { while (true){ System.out.print (“請輸入一個整數(1-100):”); Scanner scanner=new Scanner ( System.in ); int a=scanner.nextInt (); int num=(int)(Math.random ()*100+1); if (a<num){ System.out.println (“猜小了”); }if(a>num){ System.out.println (“猜大了”); }else{ System.out.println (“猜對了”); break; } } } }