Java基礎 第二節 第八

      網友投稿 650 2022-05-29

      static 關鍵字

      概述

      定義和使用格式

      類變量

      靜態方法

      注意事項

      調用格式

      靜態原理圖解

      靜態代碼塊

      概述

      關于 static 關鍵字的使用, 它可以用來修飾的成員變量和成員方法. 被修飾的成員是屬于類的, 而不是單單屬于某個對象的. 也就是說, 既然屬于類, 就可以不靠創建對象來調用了.

      定義和使用格式

      類變量

      當 static 修飾成員變量時, 該變量稱為類變量. 該類的每個對象都共享一個類變量的值. 任何對象都可以更改該變量的值. 但也可以在不創建該類的對象的情況下對類變量進行操作.

      類變量: 使用 static 關鍵字修飾的成員變量.

      定義格式:

      static 數據類型 變量名;

      1

      舉例:

      static int numberID;

      Java基礎 第二節 第八課

      1

      比如說, 基礎班新班開班, 學員報到. 現在想為每一位新來報到的同學編學號 ( sid ), 從第一名同學開始, sid 為 1, 以此類推. 學號必須是唯一的, 連續的, 并且與班級的人數相符, 這樣便知道要分配給下一名新同學的學號是多少. 這樣我們就需要一個變量, 與單獨的每一個學生對象無關, 而是與整個班級同學數量有關.

      所以, 我們可以這樣定義一個靜態變量 numberOfStudent, 代碼如下:

      public class StudentPlus { private String name; private int age; // 學生的id private int sid; // 類變量, 記住學生數量, 分配學號 public static int numberOfStudent = 0; public StudentPlus(String name, int age){ this.name = name; this.age = age; // 通過 numberOfStudent 給學生分配學號 this.sid = ++numberOfStudent; } // 打印屬性值 public void show(){ System.out.println("Student: name=" + name + ", age=" + age + ", sid=" + sid); } } class Demo{ public static void main(String[] args) { StudentPlus s1 = new StudentPlus("張三", 23); StudentPlus s2 = new StudentPlus("李四", 24); StudentPlus s3 = new StudentPlus("王五", 25); StudentPlus s4 = new StudentPlus("趙六", 26); s1.show(); // Student : name=張三, age=23, sid=1 s2.show(); // Student : name=李四, age=24, sid=2 s3.show(); // Student : name=王五, age=25, sid=3 s4.show(); // Student : name=趙六, age=26, sid=4 } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      靜態方法

      當 static 修飾成員方法時, 該方法稱為類方法. 靜態方法在聲明中有 static, 建議使用類名來調用, 而不需要創建類的對象. 調用方式非常簡單.

      類方法: 使用 static 關鍵字修飾的成員方法, 習慣稱為靜態方法.

      定義格式:

      修飾符 static 返回值類型 方法名 (參數列表){ // 執行語句 }

      1

      2

      3

      舉例: 在 Student 類中定義靜態方法

      public static void showNum() { System.out.println("num:" + numberOfStudent); }

      1

      2

      3

      注意事項

      靜態方法可以直接訪問類變量和靜態方法

      靜態方法不能直接訪問普通成員變量或者方法. 反之, 成員方法可以直接訪問類變量或靜態方法

      靜態方法中, 不能使用 this 關鍵字

      注: 靜態方法只能訪問靜態成員

      調用格式

      被 static 修飾的成員可以并建議通過類名直接訪問. 雖然也可以通過對象名訪問靜態成員, 原因即多個對象均屬于一個類, 共享使用同一個靜態成員. 但是不建議, 會出現警告信息.

      格式:

      // 訪問類變量 類名.類變量名; // 調用靜態方法 類名.靜態方法名(參數);

      1

      2

      3

      4

      5

      調用演示, 代碼如下:

      public class Test71 { public static void main(String[] args) { // 訪問類變量 System.out.println(StudentPlus.numberOfStudent); // 調用靜態方法 StudentPlus.showNum(); } }

      1

      2

      3

      4

      5

      6

      7

      8

      靜態原理圖解

      static 修飾的內容:

      是隨著類的加載而加載的, 且只加載一次

      存儲于一塊固定的內存區域 (靜態區), 所以, 可以直接被類名調用

      它優先于對象存在, 所以, 可以被所有對象共享

      靜態代碼塊

      靜態代碼塊: 定義在成員位置, 使用 static 修飾的代碼塊 {}.

      位置: 類中方法外

      執行: 隨著類的加載而執行且執行異常, 優先于 main 方法的執行

      格式:

      public class ClassName{ static { // 執行語句 } }

      1

      2

      3

      4

      5

      作用: 給類變量進行初始化賦值. 代碼如下:

      import java.util.ArrayList; public class Game { private static int number; private static ArrayList list; static { // 給類變量賦值 number = 2; list = new ArrayList(); // 添加元素到集合中 list.add("張三"); list.add("李四"); } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      注: static 關鍵字, 可以修飾變量, 方法和代碼塊. 在使用過程中, 其主要目的還是想在不創建對象的情況下, 去調用方法.

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:數據庫選型入門必讀:如何在眼花繚亂的產品中挑出最適合業務的?
      下一篇:關于Hyper-V網絡設置經驗總結(Default Switch/固定IP/SSH)
      相關文章
      国产日韩成人亚洲丁香婷婷| 狠狠色婷婷狠狠狠亚洲综合 | 国产亚洲美女精品久久久久狼| 亚洲JIZZJIZZ中国少妇中文| 亚洲av无码片vr一区二区三区 | 天天爽亚洲中文字幕| 亚洲制服丝袜精品久久| 亚洲午夜电影一区二区三区| 亚洲成a人片在线观看中文app| 久久久亚洲裙底偷窥综合| 亚洲综合小说久久另类区| 亚洲精品自在线拍| 亚洲婷婷综合色高清在线| 亚洲一区二区免费视频| 亚洲an日韩专区在线| 亚洲欧美日韩综合俺去了| 亚洲七久久之综合七久久| 亚洲av无码一区二区三区在线播放 | 亚洲制服丝袜精品久久| 亚洲日本人成中文字幕| 亚洲日本VA午夜在线影院| 亚洲av无码兔费综合| 亚洲国产一级在线观看| 国产亚洲色视频在线| 亚洲精品国精品久久99热一| 亚洲AV无码一区二区二三区软件 | 亚洲国产综合专区在线电影| 亚洲高清视频在线播放| 亚洲国产中文在线二区三区免| 国产日本亚洲一区二区三区 | 久久久久久久尹人综合网亚洲| 久久亚洲免费视频| 亚洲黄色在线观看| 亚洲黄色激情视频| 久久亚洲中文字幕无码| 亚洲精品黄色视频在线观看免费资源| 国产精品亚洲产品一区二区三区| 亚洲精品午夜无码电影网| 久久久久久亚洲Av无码精品专口| 亚洲免费观看在线视频| 亚洲精品色播一区二区|