日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java中static关键字简介

發(fā)布時(shí)間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中static关键字简介 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

static靜態(tài)關(guān)鍵字:

static關(guān)鍵字可以修飾成員變量和成員方法,被修飾的成員是屬于類(lèi)的,而不是簡(jiǎn)簡(jiǎn)單單的屬于某個(gè)對(duì)象,也就是說(shuō)可以不用通過(guò)對(duì)象調(diào)用,而是通過(guò)類(lèi)直接調(diào)用。

類(lèi)變量(靜態(tài)變量):被static修飾的成員變量稱(chēng)為類(lèi)變量。當(dāng)創(chuàng)建對(duì)象后,各個(gè)對(duì)象都共享同一個(gè)類(lèi)變量的值,任何對(duì)象都可以更改類(lèi)變量的值,也可以在不創(chuàng)建對(duì)象的情況下對(duì)該類(lèi)進(jìn)行操作。

靜態(tài)方法:被static修飾的方法稱(chēng)為靜態(tài)方法,此方法不屬于對(duì)象,而是屬于類(lèi)。靜態(tài)方法不能直接訪(fǎng)問(wèn)成員變量和成員方法,可以直接訪(fǎng)問(wèn)類(lèi)變量和靜態(tài)方法;靜態(tài)方法中不能使用this關(guān)鍵字

定義一個(gè)包含靜態(tài)變量和靜態(tài)方法的類(lèi):

// 定義一個(gè)有static關(guān)鍵字修飾成員變量的標(biāo)準(zhǔn)類(lèi): public class StaticKey{// 定義成員變量:private String names;private int age;// 定義成員方法:public String gowhere(){return ",通過(guò)成員方方法去水立方";}// 1-1.類(lèi)變量的定義格式:static 數(shù)據(jù)類(lèi)型 變量名,如:static String bus;//類(lèi)變量可以直接通過(guò)類(lèi)名點(diǎn).訪(fǎng)問(wèn),也可以通過(guò)對(duì)象.訪(fǎng)問(wèn),但是不推薦使用對(duì)象訪(fǎng)問(wèn)// 1-2.靜態(tài)方法的定義格式:修飾符 static 返回值類(lèi)型 方法名(){},如:public static String gowherestatic(){// System.out.println(this.names+"通過(guò)靜態(tài)方法去迪士尼");靜態(tài)方法不能直接訪(fǎng)問(wèn)成員變量和成員方法,也不能使用this關(guān)鍵字,靜態(tài)方法只能訪(fǎng)問(wèn)靜態(tài)成員。return ",通過(guò)靜態(tài)方法去迪士尼";}// 2.該類(lèi)的無(wú)參數(shù)構(gòu)造方法:每創(chuàng)建一次對(duì)象就會(huì)執(zhí)行一次該構(gòu)造方法public StaticKey(){System.out.println("無(wú)參數(shù)構(gòu)造方法執(zhí)行了");}// 3.該類(lèi)的全參數(shù)構(gòu)造方法: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;} }

通過(guò)上面的類(lèi)實(shí)例化對(duì)象:

public class Passenger{public static void main(String[] args){// 1.通過(guò)StaticKey類(lèi)實(shí)例化對(duì)象:StaticKey passenger1 = new StaticKey("jack",18);StaticKey passenger2 = new StaticKey("sherry",17);// 沒(méi)創(chuàng)建一次對(duì)象就會(huì)執(zhí)行一次無(wú)參數(shù)構(gòu)造方法,打印2次:全參數(shù)構(gòu)造方法執(zhí)行了// 2.訪(fǎng)問(wèn)類(lèi)變量:(不推薦通過(guò)對(duì)象訪(fǎng)問(wèn)類(lèi)變量)passenger1.bus = "大巴-001";// 3-1.測(cè)試:通過(guò)對(duì)象訪(fǎng)問(wèn)類(lèi)變量(不推薦使用)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:通過(guò)類(lèi)直接訪(fǎng)問(wèn)類(lèi)變量:(推薦使用)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:通過(guò)對(duì)象調(diào)用成員方法:System.out.println("姓名:"+passenger1.getNames()+",年齡:"+passenger1.getAge()+",大巴更改為:"+StaticKey.bus+passenger1.gowhere());//姓名:jack,年齡:18,大巴更改為:大巴-002,通過(guò)成員方方法去水立方System.out.println("姓名:"+passenger2.getNames()+",年齡:"+passenger2.getAge()+",大巴更改為:"+StaticKey.bus+passenger2.gowhere());//姓名:sherry,年齡:17,大巴更改為:大巴-002,通過(guò)成員方方法去水立方// 4-2:通過(guò)對(duì)象調(diào)用靜態(tài)方法,不推薦使用,推薦使用類(lèi)調(diào)用靜態(tài)方法:(通過(guò)對(duì)象訪(fǎng)問(wèn)靜態(tài)方法最終會(huì)被編譯為通過(guò)類(lèi)訪(fǎng)問(wèn)靜態(tài)方法)System.out.println("姓名:"+passenger1.getNames()+",年齡:"+passenger1.getAge()+",大巴更改為:"+StaticKey.bus+passenger1.gowherestatic());//姓名:jack,年齡:18,大巴更改為:大巴-002,通過(guò)靜態(tài)方法去迪士尼 System.out.println("姓名:"+passenger2.getNames()+",年齡:"+passenger2.getAge()+",大巴更改為:"+StaticKey.bus+passenger2.gowherestatic());//姓名:sherry,年齡:17,大巴更改為:大巴-002,通過(guò)靜態(tài)方法去迪士尼 System.out.println("姓名:"+passenger1.getNames()+",年齡:"+passenger1.getAge()+",大巴更改為:"+StaticKey.bus+StaticKey.gowherestatic());//姓名:jack,年齡:18,大巴更改為:大巴-002,通過(guò)靜態(tài)方法去迪士尼 System.out.println("姓名:"+passenger2.getNames()+",年齡:"+passenger2.getAge()+",大巴更改為:"+StaticKey.bus+StaticKey.gowherestatic());//姓名:sherry,年齡:17,大巴更改為:大巴-002,通過(guò)靜態(tài)方法去迪士尼/*總結(jié):成員方法可以訪(fǎng)問(wèn)成員變量和靜態(tài)變量,靜態(tài)方法不能直接訪(fǎng)問(wèn)非靜態(tài),因?yàn)樵趦?nèi)存中是先有靜態(tài)內(nèi)容,后有非靜態(tài)內(nèi)容的,即前者無(wú)法訪(fǎng)問(wèn)后者,后者可以訪(fǎng)問(wèn)前者。訪(fǎng)問(wèn)靜態(tài)時(shí),與對(duì)象無(wú)關(guān),在內(nèi)存中直接通過(guò)方法區(qū)-靜態(tài)區(qū)訪(fǎng)問(wèn),而不是通過(guò)某個(gè)對(duì)象間接訪(fǎng)問(wèn)。*/} }

靜態(tài)代碼塊:
直接在類(lèi)中通過(guò)關(guān)鍵字static修飾大括號(hào),特點(diǎn):在某個(gè)java文件中第一次用到本類(lèi)時(shí)只會(huì)執(zhí)行一次,再使用此類(lèi)將不再執(zhí)行靜態(tài)代碼塊中的內(nèi)容(另一個(gè)java文件中會(huì)再次執(zhí)行),如:

public class StaticBlock{static {System.out.println("這里是靜態(tài)代碼塊");//這里只會(huì)執(zhí)行一次,那就是在第一次使用到該類(lèi)的時(shí)候,后面再使用到不會(huì)再執(zhí)行靜態(tài)代碼塊中的內(nèi)容。} }

使用靜態(tài)代碼塊類(lèi)的實(shí)例對(duì)象:

public class StaticBlockObj{public static void main(String[] args){StaticBlock staticblock = new StaticBlock();StaticBlock staticblock2 = new StaticBlock();} }

另一個(gè)java文件源碼:

public class StaticBlockObj2{public static void main(String[] args){StaticBlock staticblock = new StaticBlock();StaticBlock staticblock2 = new StaticBlock();} }

提示:本文圖片等素材來(lái)源于網(wǎng)絡(luò),若有侵權(quán),請(qǐng)發(fā)郵件至郵箱:810665436@qq.com聯(lián)系筆者刪除。
筆者:苦海

總結(jié)

以上是生活随笔為你收集整理的java中static关键字简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。