程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 淺析java 的 static 症結字用法

淺析java 的 static 症結字用法

編輯:關於JAVA

淺析java 的 static 症結字用法。本站提示廣大學習愛好者:(淺析java 的 static 症結字用法)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析java 的 static 症結字用法正文


本篇淺析java中static的用法,重要五個方面:靜態成員變量,靜態辦法,靜態塊,靜態外部類,靜態導包。

起首照樣一張表格說一下靜態對象和非靜態對象的差別:

靜態對象 非靜態對象 歸屬 類配合具有 類的各個實例自力具有 內存分派 內存空間上固定的 從屬類分派 分派空間次序 優先分派靜態對象空間 優先分派靜態對象空間,初始化也一樣

1 靜態變量,靜態辦法,靜態塊

靜態對象,靜態辦法都是在原對象和辦法上加上static症結字潤飾,表現類可以直接挪用這些,而不須要實例化後再挪用。具有的利益是:

1--靜態對象的數據是全局獨一的,一改都改,可以包管數據的獨一性

2--援用便利,直接用類名.辦法(屬性)便可以了,不消再get和set

固然靜態辦法(變量,塊)也有響應的限制:

1--不克不及挪用其他非靜態辦法(只能挪用static辦法)

2--只能拜訪static數據

3--不克不及以任何方法援用this或super

示例代碼:

public class StaticExercise {
public static String sky="jeyson";
public static String getMySky(String sky){
return sky;
}
static {
System.out.println("這是靜態塊中的內容--");
System.out.println("靜態塊:"+getMySky(sky));
}
/**
* ***靜態對象利益:
* 1--靜態對象的數據是全局獨一的,一改都改,可以包管數據獨一。
* 2--援用便利,直接類名.辦法就好了,不消set和get
* ***分派空間次序:
* 先分派靜態對象空間再分派非靜態。初始化次序也是如許
* ***static final 潤飾的成員變量和成員辦法可以懂得為全局變量(java中沒有全局變量概念)
* ***靜態對象,辦法,塊的限制:
* 1--只能挪用其他的static辦法
* 2--只能拜訪static數據
* 3--不克不及以任何方法援用this或super
* 靜態對象測試
*/
@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 靜態外部類

當一個類跟另外一個類(內部類)有慎密的接洽,普通只要用到內部類的時刻才會用該類的話,可以將該類作為靜態的外部類。如許便可以跟著類的加載而直接發生。不消再可以實例化。

應用辦法:隨類一同被加載,挪用直接內部類.外部類.靜態對象(辦法)

示例代碼:

class StaticTest{
public static String sms="to my sky";
public static String getSms(){
return sms;
}
/**
* 靜態外部類
* ***應用場景:
* 外部類跟內部類接洽慎密,普通只要用到內部類的時刻才會用到這個類
* ***應用
* 隨類一同被加載,直接內部類.外部類.靜態對象(辦法)
*/
static class InnerStatic{
public static final String MYSKY="MY FINAL SKY";
}
} 
@Test
public void testStatic2(){
System.out.println(StaticTest.InnerStatic.MYSKY);
} 

2 靜態導包

假如要用的靜態辦法地點的類跟以後類不在統一個包下,可使用靜態導包。如許你想要用的靜態辦法或變量就相當於在該類中直接可見,無需再類名.靜態變量的方法挪用。

應用辦法:

import static 包名.類名.靜態成員變量(辦法)

利益:

被導入的靜態變量和辦法在該類中直接可見,直接用

害處:

必定水平上下降了代碼的可讀性

代碼示例:

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

import static com.generic.MyStaticImportTest.number;
import static com.generic.MyStaticImportTest.getMyWords;
/**
* @Description:
* 靜態
*/
public class StaticExercise {
/**
* 靜態導包
* ***應用辦法:
* 直接靜態導入響應的變量和辦法:(import static 包名.類名.靜態成員變量(辦法)
* import static com.generic.MyStaticImportTest.number;
* import static com.generic.MyStaticImportTest.getMyWords;
* *** 利益:
* 被導入的靜態辦法和變量在這個類中直接可見,無需再給出類名
* *** 害處
* 必定水平上下降了代碼的可讀性
*/
@Test
public void testStatic3(){
//靜態導入後可以直接用
int myNumber=number;
getMyWords();
}
} 

以上所述是小編給年夜家引見的淺析java 的 static 症結字用法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved