91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中的變量類型有哪些

發布時間:2021-11-08 17:46:17 來源:億速云 閱讀:329 作者:小新 欄目:開發技術

小編給大家分享一下Java中的變量類型有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

1、局部變量

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

  • 局部變量聲明在方法、構造方法或者語句塊中;

  • 局部變量在方法、構造方法、或者語句塊被執行的時候創建,當它們執行完成后,變量將會被銷毀;

  • 訪問修飾符不能用于局部變量;

  • 局部變量只在聲明它的方法、構造方法或者語句塊中可見;

  • 局部變量是在棧上分配的。

  • 局部變量沒有默認值,所以局部變量被聲明后,必須經過初始化,才可以使用。

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

成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化。成員變量可以被類中方法、構造方法和特定類的語句塊訪問。

  • 實例變量聲明在一個類中,但在方法、構造方法和語句塊之外;

  • 當一個對象被實例化之后,每個實例變量的值就跟著確定;

  • 實例變量在對象創建的時候創建,在對象被銷毀的時候銷毀;

  • 實例變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;

  • 實例變量可以聲明在使用前或者使用后;

  • 訪問修飾符可以修飾實例變量;

  • 實例變量對于類中的方法、構造方法或者語句塊是可見的。一般情況下應該把實例變量設為私有。通過使用訪問修飾符可以使實例變量對子類可見;

  • 實例變量具有默認值。數值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構造方法中指定;

  • 實例變量可以直接通過變量名訪問。但在靜態方法以及其他類中,就應該使用完全限定名:ObejectReference.VariableName。

3、類變量

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

  • 類變量也稱為靜態變量,在類中以 static 關鍵字聲明,但必須在方法之外。

  • 無論一個類創建了多少個對象,類只擁有類變量的一份拷貝。

  • 靜態變量除了被聲明為常量外很少使用。常量是指聲明為 public / private, final static 類型的變量。常量初始化后不可改變。

  • 靜態變量儲存在靜態存儲區。經常被聲明為常量,很少單獨使用 static 聲明變量。

  • 靜態變量在第一次被訪問時創建,在程序結束時銷毀。

  • 與實例變量具有相似的可見性。但為了對類的使用者可見,大多數靜態變量聲明為 public 類型。

  • 默認值和實例變量相似。數值型變量默認值是 0,布爾型默認值是 false,引用類型默認值是 null。變量的值可以在聲明的時候指定,也可以在構造方法中指定。此外,靜態變量還可以在靜態語句塊中初始化。

  • 靜態變量可以通過:ClassName.VariableName 的方式訪問。

  • 類變量被聲明為 public static final 類型時,類變量名稱一般建議使用大寫字母。如果靜態變量不是 public final 類型,其命名方式與實例變量以及局部變量的命名方式一致。

關于 類變量 的說明:

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

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

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

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 中也出現了,而普通的成員變量則不然。

利用這種特性,我們可以實現一種可以統計自己的實例個數的類,

例如:

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 { // 自計數類
 static int total = 0;

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

看完了這篇文章,相信你對“Java中的變量類型有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠东县| 阿巴嘎旗| 称多县| 阳信县| 塔城市| 噶尔县| 思南县| 临澧县| 大庆市| 苏尼特左旗| 南川市| 广德县| 岳普湖县| 云阳县| 锡林郭勒盟| 靖远县| 东莞市| 湖北省| 申扎县| 乐安县| 紫金县| 渝北区| 砚山县| 久治县| 扬中市| 乌拉特中旗| 金溪县| 雅安市| 原阳县| 苏州市| 灵璧县| 平遥县| 延庆县| 宜宾市| 临澧县| 辽中县| 周至县| 民县| 灌云县| 合水县| 鞍山市|