java中static的用法(一)靜態成員變數__java

來源:互聯網
上載者:User

static可以修飾成員變數、方法、游離塊、內部類。

     static修飾的成員變數:static修飾的成員變數也叫類變數或全域變數,在類被載入時static修飾的成員變數被初始化,與類關聯,只要類存在,static變數就存在。一個static變數單獨劃分一Block Storage空間,不與具體的對象綁定在一起,該儲存空間被類的各個對象所共用。也就是說當聲明一個對象時,並不產生static變數的拷貝,而是該類所有的執行個體對象共用同一個static變數。static修飾的成員變數能在建立任何執行個體對象之前被訪問,而不必引用任何對象,也就是說不管建立多少對象,static修飾的變數只佔有一塊記憶體。

static修飾的成員變數的引用:

     可以通過執行個體對象名和類名進行引用,在同一各類中可以直接調用,而不需要對象名和類名。

看下面執行個體:

package com.baiye.test;

public class StaticTest {
 static int a=9;
 static String str="quan";
 public StaticTest(){
  System.out.println("static變數在類裝載的時候就初始化(在執行個體化對象之前):a="+a);
  //a=4;
  System.out.println(a);
  System.out.println(str);
  
 }
 static void staticMethod(){
  str="baiye";
  //return str;
  System.out.println("在靜態方法引用靜態變數:str="+str);
 }
 void generalMethod(){
  a=6;
  System.out.println("在非靜態方法中調用靜態變數:a="+a);
 }
 public static void main(String[] args){
  StaticTest st1=new StaticTest();
  StaticTest st2=new StaticTest();
  StaticTest st3=new StaticTest();
  st1.a=5;
  System.out.println("st1.a="+st1.a+" st2.a="+st2.a+" st3.a="+st3.a);
  staticMethod();
  System.out.println("st1.str="+st1.str+" st2.str="+st2.str+" st3.str="+st3.str);
  StaticTest st4=new StaticTest();
  st1.generalMethod();
  System.out.println("st1.a="+st1.a+" st2.a="+st2.a+" st3.a="+st3.a);
 }

}

輸出結果:

static變數在類裝載的時候就初始化(在執行個體化對象之前):a=9
9
quan
static變數在類裝載的時候就初始化(在執行個體化對象之前):a=9
9
quan
static變數在類裝載的時候就初始化(在執行個體化對象之前):a=9
9
quan
st1.a=5 st2.a=5 st3.a=5
在靜態方法引用靜態變數:str=baiye
st1.str=baiye st2.str=baiye st3.str=baiye
static變數在類裝載的時候就初始化(在執行個體化對象之前):a=5
5
baiye
在非靜態方法中調用靜態變數:a=6
st1.a=6 st2.a=6 st3.a=6

在這個結果中我們可以看出不管執行個體多少個對象static修飾的成員變數只佔有一塊 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.