日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
詳解Java中static的作用

 1.static 成員變量

專注于為中小企業(yè)提供網站設計、成都網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)沙灣免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯網行業(yè)人才,有力地推動了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現規(guī)模擴充和轉變。

 
 
 
  1. public class Student {
  2.     // 靜態(tài)成員變量
  3.     private static String SchoolName;
  4.     private static int nums;
  5.     
  6.     // 非靜態(tài)成員變量
  7.     private String name;
  8.     private int age;
  9. }

在類中一個成員變量可用 static 關鍵字來修飾,這樣的成員變量稱為 static 成員變量,或靜態(tài)成員變量。而沒有用 static 關鍵字修飾的成員變量稱為非靜態(tài)成員變量。

靜態(tài)成員變量是屬于類的,也就是說,該成員變量并不屬于某個對象,即使有多個該類的對象實例,靜態(tài)成員變量也只有一個。只要靜態(tài)成員變量所在的類被加載,這個靜態(tài)成員變量就會被分配內存空間。因此在引用該靜態(tài)成員變量時,通常不需要生成該類的對象,而是通過類名直接引用。引用的方法是“類名 . 靜態(tài)變量名”。當然仍然可以通過“對象名 . 靜態(tài)變量名”的方式引用該靜態(tài)成員變量。相對應的非靜態(tài)成員變量則屬于對象而非類,只有在內存中構建該類對象時,非靜態(tài)成員變量才被分配內存空間。

2.static 成員方法

 
 
 
  1. public class Student {
  2.     private static String SchoolName;
  3.     private static int nums;
  4.         // 靜態(tài)成員方法
  5.     public static String getSchoolName() {
  6.         return Student.SchoolName;
  7.     }
  8. }

Java 中也支持用 static 關鍵字修飾的成員方法,即靜態(tài)成員方法。與此相對應的沒有用 static 修飾的成員方法稱為非靜態(tài)成員方法。

與靜態(tài)成員變量類似,靜態(tài)成員方法是類方法,它屬于類本身而不屬于某個對象。因此靜態(tài)成員方法不需要創(chuàng)建對象就可以被調用,而非靜態(tài)成員方法則需要通過對象來調用。

特別需要注意的是,在靜態(tài)成員方法中不能使用 this、super 關鍵字,也不能調用非靜態(tài)成員方法,同時不能引用非靜態(tài)成員變量。這個道理是顯而易見的,因為靜態(tài)成員方法屬于類而不屬于某個對象,而 this、super 都是對象的引用,非靜態(tài)成員方法和成員變量也都屬于對象。所以當某個靜態(tài)成員方法被調用時,該類的對象可能還沒有被創(chuàng)建,那么在靜態(tài)成員方法中調用對象屬性的方法或成員變量顯然是不合適的。即使該類的對象已經被創(chuàng)建,也是無法確定它究竟是調用哪個對象的方法,或是哪個對象中的成員變量的。所以在這里特別強調這一點。

3.static 代碼塊

 
 
 
  1. public class Student {
  2.     private static String SchoolName;
  3.     private static int nums;
  4.         // 靜態(tài)代碼塊
  5.     static {
  6.         Student.SchoolName = "清風小學";
  7.         Student.nums = 0;
  8.     }
  9. }

static 代碼塊又稱為靜態(tài)代碼塊,或靜態(tài)初始化器。它是在類中獨立于成員函數的代碼塊。static 代碼塊不需要程序主動調用,在JVM加載類時系統(tǒng)會執(zhí)行 static 代碼塊,因此在static 代碼塊中可以做一些類成員變量的初始化工作。如果一個類中有多個 static 代碼塊,JVM將會按順序依次執(zhí)行。需要注意的是,所有的static 代碼塊只能在JVM加載類時被執(zhí)行一次。

4.static 內部類

 
 
 
  1. public class Student {
  2.     private static String SchoolName;
  3.     private static int nums;
  4.         // 靜態(tài)內部類
  5.     static class test{
  6.         public test() {
  7.             System.out.println("Hello,student!" );
  8.         }
  9.     }
  10. }

在 Java 中還支持用 static 修飾的內部類,稱為靜態(tài)內部類。靜態(tài)成員內部類的特點主要是它本身是類相關的內部類,所以它可以不依賴于外部類實例而被實例化。靜態(tài)內部類不能訪問其外部類的實例成員(包括普通的成員變量和方法),只能訪問外部類的類成員(包括靜態(tài)成員變量和靜態(tài)方法)。即使是靜態(tài)內部類的實例方法(非靜態(tài)成員方法)也不能訪問其外部類的實例成員。


名稱欄目:詳解Java中static的作用
文章位置:http://www.5511xx.com/article/dhdohdc.html