最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析java 的 static 關(guān)鍵字用法

 更新時間:2016年06月20日 10:21:13   作者:jeyson  
這篇文章主要介紹了淺析java 的 static 關(guān)鍵字用法的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

本篇淺析java中static的用法,主要五個方面:靜態(tài)成員變量,靜態(tài)方法,靜態(tài)塊,靜態(tài)內(nèi)部類,靜態(tài)導(dǎo)包。

首先還是一張表格說一下靜態(tài)對象和非靜態(tài)對象的區(qū)別:

靜態(tài)對象 非靜態(tài)對象
歸屬 類共同具有 類的各個實(shí)例獨(dú)立擁有
內(nèi)存分配 內(nèi)存空間上固定的 附屬類分配
分配空間順序 優(yōu)先分配靜態(tài)對象空間 優(yōu)先分配靜態(tài)對象空間,初始化也一樣

1 靜態(tài)變量,靜態(tài)方法,靜態(tài)塊

靜態(tài)對象,靜態(tài)方法都是在原對象和方法上加上static關(guān)鍵字修飾,表示類可以直接調(diào)用這些,而不需要實(shí)例化后再調(diào)用。具有的好處是:

1--靜態(tài)對象的數(shù)據(jù)是全局唯一的,一改都改,可以保證數(shù)據(jù)的唯一性

2--引用方便,直接用類名.方法(屬性)就可以了,不用再get和set

當(dāng)然靜態(tài)方法(變量,塊)也有相應(yīng)的限制:

1--不能調(diào)用其他非靜態(tài)方法(只能調(diào)用static方法)

2--只能訪問static數(shù)據(jù)

3--不能以任何方式引用this或super

示例代碼:

public class StaticExercise {
public static String sky="jeyson";
public static String getMySky(String sky){
return sky;
}
static {
System.out.println("這是靜態(tài)塊中的內(nèi)容--");
System.out.println("靜態(tài)塊:"+getMySky(sky));
}
/**
* ***靜態(tài)對象好處:
* 1--靜態(tài)對象的數(shù)據(jù)是全局唯一的,一改都改,可以保證數(shù)據(jù)唯一。
* 2--引用方便,直接類名.方法就行了,不用set和get
* ***分配空間順序:
* 先分配靜態(tài)對象空間再分配非靜態(tài)。初始化順序也是這樣
* ***static final 修飾的成員變量和成員方法可以理解為全局變量(java中沒有全局變量概念)
* ***靜態(tài)對象,方法,塊的限制:
* 1--只能調(diào)用其他的static方法
* 2--只能訪問static數(shù)據(jù)
* 3--不能以任何方式引用this或super
* 靜態(tài)對象測試
*/
@Test
public void testStatic1(){
System.out.println(sky);
System.out.println("-----------------");
System.out.println(getMySky(sky));
System.out.println("-----------------");
System.out.println(StaticTest.getSms());
}
} 

2 靜態(tài)內(nèi)部類

當(dāng)一個類跟另一個類(外部類)有緊密的聯(lián)系,一般只有用到外部類的時候才會用該類的話,可以將該類作為靜態(tài)的內(nèi)部類。這樣就可以隨著類的加載而直接產(chǎn)生。不用再可以實(shí)例化。

使用方法:隨類一同被加載,調(diào)用直接外部類.內(nèi)部類.靜態(tài)對象(方法)

示例代碼:

class StaticTest{
public static String sms="to my sky";
public static String getSms(){
return sms;
}
/**
* 靜態(tài)內(nèi)部類
* ***使用場景:
* 內(nèi)部類跟外部類聯(lián)系緊密,一般只有用到外部類的時候才會用到這個類
* ***使用
* 隨類一同被加載,直接外部類.內(nèi)部類.靜態(tài)對象(方法)
*/
static class InnerStatic{
public static final String MYSKY="MY FINAL SKY";
}
} 
@Test
public void testStatic2(){
System.out.println(StaticTest.InnerStatic.MYSKY);
} 

2 靜態(tài)導(dǎo)包

如果要用的靜態(tài)方法所在的類跟當(dāng)前類不在同一個包下,可以使用靜態(tài)導(dǎo)包。這樣你想要用的靜態(tài)方法或變量就相當(dāng)于在該類中直接可見,無需再類名.靜態(tài)變量的方式調(diào)用。

使用方法:

import static 包名.類名.靜態(tài)成員變量(方法)

好處:

被導(dǎo)入的靜態(tài)變量和方法在該類中直接可見,直接用

壞處:

一定程度上降低了代碼的可讀性

代碼示例:

public class MyStaticImportTest {
public static final int number=55;
public static void getMyWords(){
System.out.println("hello ,這是一個靜態(tài)導(dǎo)包的測試");
}
} 

import static com.generic.MyStaticImportTest.number;
import static com.generic.MyStaticImportTest.getMyWords;
/**
* @Description:
* 靜態(tài)
*/
public class StaticExercise {
/**
* 靜態(tài)導(dǎo)包
* ***使用方法:
* 直接靜態(tài)導(dǎo)入相應(yīng)的變量和方法:(import static 包名.類名.靜態(tài)成員變量(方法)
* import static com.generic.MyStaticImportTest.number;
* import static com.generic.MyStaticImportTest.getMyWords;
* *** 好處:
* 被導(dǎo)入的靜態(tài)方法和變量在這個類中直接可見,無需再給出類名
* *** 壞處
* 一定程度上降低了代碼的可讀性
*/
@Test
public void testStatic3(){
//靜態(tài)導(dǎo)入后可以直接用
int myNumber=number;
getMyWords();
}
} 

以上所述是小編給大家介紹的淺析java 的 static 關(guān)鍵字用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

香格里拉县| 乃东县| 白沙| 壤塘县| 安阳县| 通辽市| 华蓥市| 安图县| 大埔县| 鲁山县| 米林县| 龙井市| 富民县| 苏尼特左旗| 朝阳县| 巴林左旗| 会同县| 迁西县| 邯郸市| 伊春市| 永宁县| 桂平市| 绥滨县| 固原市| 海盐县| 兴和县| 息烽县| 东宁县| 阳西县| 涟水县| 昭通市| 阜城县| 鹰潭市| 潞城市| 峡江县| 织金县| 鲜城| 平果县| 集安市| 开封县| 含山县|