欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 中的變量類型

 更新時間:2021年11月08日 16:03:15   投稿:hqx  
這篇文章主要介紹了Java 中的變量類型,一般包括局部變量、成員變量、類變量,下面文章對這三種內(nèi)容的變量做了一個詳細介紹,需要的朋友可以參考一下

1、局部變量

在方法或語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結(jié)束后,變量就會自動銷毀。

  • 局部變量聲明在方法、構(gòu)造方法或者語句塊中;
  • 局部變量在方法、構(gòu)造方法、或者語句塊被執(zhí)行的時候創(chuàng)建,當(dāng)它們執(zhí)行完成后,變量將會被銷毀;
  • 訪問修飾符不能用于局部變量;
  • 局部變量只在聲明它的方法、構(gòu)造方法或者語句塊中可見;
  • 局部變量是在棧上分配的。
  • 局部變量沒有默認值,所以局部變量被聲明后,必須經(jīng)過初始化,才可以使用。

2、成員變量(實例變量)

成員變量是定義在類中,方法體之外的變量。這種變量在創(chuàng)建對象的時候?qū)嵗?。成員變量可以被類中方法、構(gòu)造方法和特定類的語句塊訪問。

  • 實例變量聲明在一個類中,但在方法、構(gòu)造方法和語句塊之外;
  • 當(dāng)一個對象被實例化之后,每個實例變量的值就跟著確定;
  • 實例變量在對象創(chuàng)建的時候創(chuàng)建,在對象被銷毀的時候銷毀;
  • 實例變量的值應(yīng)該至少被一個方法、構(gòu)造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;
  • 實例變量可以聲明在使用前或者使用后;
  • 訪問修飾符可以修飾實例變量;
  • 實例變量對于類中的方法、構(gòu)造方法或者語句塊是可見的。一般情況下應(yīng)該把實例變量設(shè)為私有。通過使用訪問修飾符可以使實例變量對子類可見;
  • 實例變量具有默認值。數(shù)值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構(gòu)造方法中指定;
  • 實例變量可以直接通過變量名訪問。但在靜態(tài)方法以及其他類中,就應(yīng)該使用完全限定名:ObejectReference.VariableName。

3、類變量

類變量也聲明在類中,方法體之外,但必須聲明為 static 類型。

  • 類變量也稱為靜態(tài)變量,在類中以 static 關(guān)鍵字聲明,但必須在方法之外。
  • 無論一個類創(chuàng)建了多少個對象,類只擁有類變量的一份拷貝。
  • 靜態(tài)變量除了被聲明為常量外很少使用。常量是指聲明為 public / private, final static 類型的變量。常量初始化后不可改變。
  • 靜態(tài)變量儲存在靜態(tài)存儲區(qū)。經(jīng)常被聲明為常量,很少單獨使用 static 聲明變量。
  • 靜態(tài)變量在第一次被訪問時創(chuàng)建,在程序結(jié)束時銷毀。
  • 與實例變量具有相似的可見性。但為了對類的使用者可見,大多數(shù)靜態(tài)變量聲明為 public 類型。
  • 默認值和實例變量相似。數(shù)值型變量默認值是 0,布爾型默認值是 false,引用類型默認值是 null。變量的值可以在聲明的時候指定,也可以在構(gòu)造方法中指定。此外,靜態(tài)變量還可以在靜態(tài)語句塊中初始化。
  • 靜態(tài)變量可以通過:ClassName.VariableName 的方式訪問。
  • 類變量被聲明為 public static final 類型時,類變量名稱一般建議使用大寫字母。如果靜態(tài)變量不是 public final 類型,其命名方式與實例變量以及局部變量的命名方式一致。

關(guān)于 類變量 的說明:

The static keyword in Java is used for memory management mainly. We can apply java static keyword with variables, methods, blocks and nested class. The static keyword belongs to the class than an instance of the class. The static can be: Variable (also known as a class variable) Method (also known as a class method) Block.

(翻譯)

Java 中的 static 關(guān)鍵字主要用于 內(nèi)存管理(就是用了這個會安排出內(nèi)存空間來,供類的實例之間共享某個量)。我們可以將 java 的 static 關(guān)鍵字施用于變量、方法、語句塊和嵌套類。static 定義的對象是屬于整個類的, 而不是某個類的實例。

普通的變量屬于類的某一個特定的實例,但用 static 關(guān)鍵字修飾的變量將屬于一個類。也就是說,我們通過類的某一個實例去修改一個一般的變量值,將只有這個實例中的值被修改,其他實例不受影響;而若是修改一個 static 關(guān)鍵字修飾的類變量,這個類的所有實例的這個值都會被修改。

說起來比較麻煩,可以看一段示例代碼:

public class Static {
 public static void main(String[] args) {
  Example foo = new Example();
  Example bar = new Example();

  foo.staticVar = foo.normalVar = "foobar";

  System.out.println(foo.staticVar + "\t" + foo.normalVar);
  System.out.println(bar.staticVar + "\t" + bar.normalVar);
 }
}

class Example {
 static String staticVar = "Example";
 String normalVar = "Example";
}

輸出:

foobar foobar
foobar Example

可以看到,我們只改變了 foo 實例的值,但由 static 修飾的類變量 staticVar 的改變在 bar 中也出現(xiàn)了,而普通的成員變量則不然。

利用這種特性,我們可以實現(xiàn)一種可以統(tǒng)計自己的實例個數(shù)的類,

例如:

public class CountingClass {
 public static void main(String[] args) {
  Counter a = new Counter();
  Counter b = new Counter();
  Counter c = new Counter();

  System.out.println("Total Counters: " + a.total + " == " + b.total + " == " + c.total);
 }
}

class Counter { // 自計數(shù)類
 static int total = 0;

 public Counter() {
  total++;
  System.out.println("第 " + total + " 個 Counter 被構(gòu)造。");
 }
}

到此這篇關(guān)于Java 中的變量類型的文章就介紹到這了,更多相關(guān)Java 變量類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring boot 即時重新啟動(熱更替)使用說明

    spring boot 即時重新啟動(熱更替)使用說明

    這篇文章主要介紹了spring boot 即時重新啟動(熱更替)的相關(guān)資料,需要的朋友可以參考下
    2017-12-12
  • Java實現(xiàn)用Freemarker完美導(dǎo)出word文檔(帶圖片)

    Java實現(xiàn)用Freemarker完美導(dǎo)出word文檔(帶圖片)

    這篇文章主要介紹了Java實現(xiàn)用Freemarker完美導(dǎo)出word文檔(帶圖片),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 基于javaweb+jsp的游泳館會員管理系統(tǒng)(附源碼)

    基于javaweb+jsp的游泳館會員管理系統(tǒng)(附源碼)

    這篇文章主要介紹了基于javaweb+jsp的游泳館會員管理系統(tǒng),開發(fā)工具eclipse/idea/myeclipse/sts等均可配置運行,此源代碼社和課程設(shè)計,大作業(yè)及畢業(yè)設(shè)計項目,需要的朋友可以參考下
    2022-04-04
  • 簡單了解java數(shù)組傳遞方法

    簡單了解java數(shù)組傳遞方法

    這篇文章主要介紹了簡單了解java數(shù)組傳遞方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • java經(jīng)典問題:連個字符串互為回環(huán)變位

    java經(jīng)典問題:連個字符串互為回環(huán)變位

    連個字符串互為回環(huán)變位經(jīng)常出現(xiàn)在java程序員面試中,這個是考驗程序員的解題思路和方法的最經(jīng)典的一題,小編為大家詳細分析一下,一起來學(xué)習(xí)吧。
    2017-11-11
  • Spring事務(wù)事件監(jiān)控的實現(xiàn)

    Spring事務(wù)事件監(jiān)控的實現(xiàn)

    這篇文章主要介紹了Spring事務(wù)事件監(jiān)控的實現(xiàn)。本文首先會使用實例進行講解Spring事務(wù)事件是如何使用的,然后會講解這種使用方式的實現(xiàn)原理。感興趣的小伙伴們可以參考一下
    2018-10-10
  • Elasticsearch?Analyzer?內(nèi)置分詞器使用示例詳解

    Elasticsearch?Analyzer?內(nèi)置分詞器使用示例詳解

    這篇文章主要為大家介紹了Elasticsearch?Analyzer?內(nèi)置分詞器使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Java如何調(diào)用Matlab程序

    Java如何調(diào)用Matlab程序

    這篇文章主要介紹了Java如何調(diào)用Matlab程序的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • jmeter中beanshell的用法小結(jié)

    jmeter中beanshell的用法小結(jié)

    本文主要介紹了jmeter中beanshell的用法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • java9學(xué)習(xí)系列之安裝與jshell使用

    java9學(xué)習(xí)系列之安裝與jshell使用

    2017年9月21日,千呼萬喚始出來,Java9終于發(fā)布了。作為自己天天接觸的“對象”,還是應(yīng)該多花點心思去了解她。后續(xù)再進一步了解詳細特性。下面這篇文章主要給大家介紹了關(guān)于java9學(xué)習(xí)系列之安裝與jshell使用的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09

最新評論