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

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
詳解Java中static的作用

 1.static 成員變量

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

 
 
 
  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. }

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

靜態(tài)成員變量是屬于類的,也就是說(shuō),該成員變量并不屬于某個(gè)對(duì)象,即使有多個(gè)該類的對(duì)象實(shí)例,靜態(tài)成員變量也只有一個(gè)。只要靜態(tài)成員變量所在的類被加載,這個(gè)靜態(tài)成員變量就會(huì)被分配內(nèi)存空間。因此在引用該靜態(tài)成員變量時(shí),通常不需要生成該類的對(duì)象,而是通過(guò)類名直接引用。引用的方法是“類名 . 靜態(tài)變量名”。當(dāng)然仍然可以通過(guò)“對(duì)象名 . 靜態(tài)變量名”的方式引用該靜態(tài)成員變量。相對(duì)應(yīng)的非靜態(tài)成員變量則屬于對(duì)象而非類,只有在內(nèi)存中構(gòu)建該類對(duì)象時(shí),非靜態(tài)成員變量才被分配內(nè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 關(guān)鍵字修飾的成員方法,即靜態(tài)成員方法。與此相對(duì)應(yīng)的沒(méi)有用 static 修飾的成員方法稱為非靜態(tài)成員方法。

與靜態(tài)成員變量類似,靜態(tài)成員方法是類方法,它屬于類本身而不屬于某個(gè)對(duì)象。因此靜態(tài)成員方法不需要?jiǎng)?chuàng)建對(duì)象就可以被調(diào)用,而非靜態(tài)成員方法則需要通過(guò)對(duì)象來(lái)調(diào)用。

特別需要注意的是,在靜態(tài)成員方法中不能使用 this、super 關(guān)鍵字,也不能調(diào)用非靜態(tài)成員方法,同時(shí)不能引用非靜態(tài)成員變量。這個(gè)道理是顯而易見(jiàn)的,因?yàn)殪o態(tài)成員方法屬于類而不屬于某個(gè)對(duì)象,而 this、super 都是對(duì)象的引用,非靜態(tài)成員方法和成員變量也都屬于對(duì)象。所以當(dāng)某個(gè)靜態(tài)成員方法被調(diào)用時(shí),該類的對(duì)象可能還沒(méi)有被創(chuàng)建,那么在靜態(tài)成員方法中調(diào)用對(duì)象屬性的方法或成員變量顯然是不合適的。即使該類的對(duì)象已經(jīng)被創(chuàng)建,也是無(wú)法確定它究竟是調(diào)用哪個(gè)對(duì)象的方法,或是哪個(gè)對(duì)象中的成員變量的。所以在這里特別強(qiáng)調(diào)這一點(diǎn)。

3.static 代碼塊

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

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

4.static 內(nèi)部類

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

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


分享名稱:詳解Java中static的作用
分享地址:http://m.5511xx.com/article/dhdohdc.html