>[success] # static
* **static** 修飾`成員變量` 和 `成員方法`,修飾后屬于`類` 所有,分別叫做`靜態變量`,`靜態方法`,**static**修飾后只隨著**類的加載**準備就緒,與是否創建對象無關
* 使用上static關鍵字修飾的成員可以使用`引用.`的方式訪問,但推薦`類名.的`方式
>[danger] ##### 案例
* **非靜態成員方法**中既能訪問**非靜態的成員**又能訪問**靜態的成員**,`(成員:成員變量 + 成員方法, 靜態成員被所有對象共享)`
* **靜態成員方法**中只能訪問靜態成員**不能訪問非靜態成員**。`(成員:成員變量 + 成員方法, 因為此時可能還沒有創建對象)`
~~~
public class StaticTest {
private int a;
// 聲明一個靜態變量
private static int b;
public void setA(int a) {
this.a = a;
}
public int getA() {
return a;
}
// 靜態方法
public static int getB() {
// 類. 屬性
return StaticTest.b;
}
// 靜態方法
public static void setB(int b) {
// this.b = b // 報錯靜態方法可以直接類調用此時并沒有創建對象實例因此沒有this
// 類. 屬性
StaticTest.b = b;
}
public void show() {
// 在非靜態方法中可以通過this 調用靜態屬性 因為此時方法調用需要創建對象因此this存在
System.out.println(a + "," + this.b);
System.out.println(a + "," + StaticTest.b);
}
public static void main(String[] args) {
StaticTest staticTest = new StaticTest();
staticTest.setA(10);
// 通過實列調用靜態方法 也可調用靜態屬性不推薦
staticTest.setB(11);
staticTest.show(); // 10,11
// 創建新的實列
StaticTest staticTest1 = new StaticTest();
staticTest1.setA(10);
// 靜態方法推薦類調用
StaticTest.setB(16);
// 靜態屬性共享的此時 重新打印 都變成同一的
staticTest.show(); // 10,16
staticTest1.show(); // 10,16
}
}
~~~
>[danger] ##### main -- 方法含義
* 公共的 靜態的 無返回值的 叫 main 的一個方法,并且可以接受一個數組字符串作為參數,傳參時候`java 文件 參數1 參數2`
~~~
public static void main(String[] args){}
~~~
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法