當前位置:
首頁 >
java中static关键字简介
發布時間:2025/3/15
36
豆豆
生活随笔
收集整理的這篇文章主要介紹了
java中static关键字简介
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
static靜態關鍵字:
static關鍵字可以修飾成員變量和成員方法,被修飾的成員是屬于類的,而不是簡簡單單的屬于某個對象,也就是說可以不用通過對象調用,而是通過類直接調用。
類變量(靜態變量):被static修飾的成員變量稱為類變量。當創建對象后,各個對象都共享同一個類變量的值,任何對象都可以更改類變量的值,也可以在不創建對象的情況下對該類進行操作。
靜態方法:被static修飾的方法稱為靜態方法,此方法不屬于對象,而是屬于類。靜態方法不能直接訪問成員變量和成員方法,可以直接訪問類變量和靜態方法;靜態方法中不能使用this關鍵字
定義一個包含靜態變量和靜態方法的類:
// 定義一個有static關鍵字修飾成員變量的標準類: public class StaticKey{// 定義成員變量:private String names;private int age;// 定義成員方法:public String gowhere(){return ",通過成員方方法去水立方";}// 1-1.類變量的定義格式:static 數據類型 變量名,如:static String bus;//類變量可以直接通過類名點.訪問,也可以通過對象.訪問,但是不推薦使用對象訪問// 1-2.靜態方法的定義格式:修飾符 static 返回值類型 方法名(){},如:public static String gowherestatic(){// System.out.println(this.names+"通過靜態方法去迪士尼");靜態方法不能直接訪問成員變量和成員方法,也不能使用this關鍵字,靜態方法只能訪問靜態成員。return ",通過靜態方法去迪士尼";}// 2.該類的無參數構造方法:每創建一次對象就會執行一次該構造方法public StaticKey(){System.out.println("無參數構造方法執行了");}// 3.該類的全參數構造方法:public StaticKey(String na,int ag){this.names = na;this.age = ag;}// 4.names成員變量的get-和set-方法:public String getNames(){return names;}public void setNames(String na){this.names = na;}// 5.age成員變量的get-和set-方法:public int getAge(){return age;}public void setAge(int ag){this.age = ag;} }通過上面的類實例化對象:
public class Passenger{public static void main(String[] args){// 1.通過StaticKey類實例化對象:StaticKey passenger1 = new StaticKey("jack",18);StaticKey passenger2 = new StaticKey("sherry",17);// 沒創建一次對象就會執行一次無參數構造方法,打印2次:全參數構造方法執行了// 2.訪問類變量:(不推薦通過對象訪問類變量)passenger1.bus = "大巴-001";// 3-1.測試:通過對象訪問類變量(不推薦使用)System.out.println("姓名:"+passenger1.getNames()+",年齡:"+passenger1.getAge()+",大巴:"+passenger1.bus);//姓名:jack,年齡:18,大巴:大巴-001System.out.println("姓名:"+passenger2.getNames()+",年齡:"+passenger2.getAge()+",大巴:"+passenger2.bus);//姓名:sherry,年齡:17,大巴:大巴-001// 3-2:通過類直接訪問類變量:(推薦使用)StaticKey.bus = "大巴-002";System.out.println("姓名:"+passenger1.getNames()+",年齡:"+passenger1.getAge()+",大巴更改為:"+StaticKey.bus);//姓名:jack,年齡:18,大巴更改為:大巴-002System.out.println("姓名:"+passenger2.getNames()+",年齡:"+passenger2.getAge()+",大巴更改為:"+StaticKey.bus);//姓名:sherry,年齡:17,大巴更改為:大巴-002// 4-1:通過對象調用成員方法:System.out.println("姓名:"+passenger1.getNames()+",年齡:"+passenger1.getAge()+",大巴更改為:"+StaticKey.bus+passenger1.gowhere());//姓名:jack,年齡:18,大巴更改為:大巴-002,通過成員方方法去水立方System.out.println("姓名:"+passenger2.getNames()+",年齡:"+passenger2.getAge()+",大巴更改為:"+StaticKey.bus+passenger2.gowhere());//姓名:sherry,年齡:17,大巴更改為:大巴-002,通過成員方方法去水立方// 4-2:通過對象調用靜態方法,不推薦使用,推薦使用類調用靜態方法:(通過對象訪問靜態方法最終會被編譯為通過類訪問靜態方法)System.out.println("姓名:"+passenger1.getNames()+",年齡:"+passenger1.getAge()+",大巴更改為:"+StaticKey.bus+passenger1.gowherestatic());//姓名:jack,年齡:18,大巴更改為:大巴-002,通過靜態方法去迪士尼 System.out.println("姓名:"+passenger2.getNames()+",年齡:"+passenger2.getAge()+",大巴更改為:"+StaticKey.bus+passenger2.gowherestatic());//姓名:sherry,年齡:17,大巴更改為:大巴-002,通過靜態方法去迪士尼 System.out.println("姓名:"+passenger1.getNames()+",年齡:"+passenger1.getAge()+",大巴更改為:"+StaticKey.bus+StaticKey.gowherestatic());//姓名:jack,年齡:18,大巴更改為:大巴-002,通過靜態方法去迪士尼 System.out.println("姓名:"+passenger2.getNames()+",年齡:"+passenger2.getAge()+",大巴更改為:"+StaticKey.bus+StaticKey.gowherestatic());//姓名:sherry,年齡:17,大巴更改為:大巴-002,通過靜態方法去迪士尼/*總結:成員方法可以訪問成員變量和靜態變量,靜態方法不能直接訪問非靜態,因為在內存中是先有靜態內容,后有非靜態內容的,即前者無法訪問后者,后者可以訪問前者。訪問靜態時,與對象無關,在內存中直接通過方法區-靜態區訪問,而不是通過某個對象間接訪問。*/} }靜態代碼塊:
直接在類中通過關鍵字static修飾大括號,特點:在某個java文件中第一次用到本類時只會執行一次,再使用此類將不再執行靜態代碼塊中的內容(另一個java文件中會再次執行),如:
使用靜態代碼塊類的實例對象:
public class StaticBlockObj{public static void main(String[] args){StaticBlock staticblock = new StaticBlock();StaticBlock staticblock2 = new StaticBlock();} }另一個java文件源碼:
public class StaticBlockObj2{public static void main(String[] args){StaticBlock staticblock = new StaticBlock();StaticBlock staticblock2 = new StaticBlock();} }提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者刪除。
筆者:苦海
總結
以上是生活随笔為你收集整理的java中static关键字简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ReactNative简介、开发环境、调
- 下一篇: 杭州保俶塔实验机器人_【科教有闻】高照实