您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Java變量類型和修飾符實例分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Java變量類型和修飾符實例分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
和C++差不多,就是:
type identifier [ = value][, identifier [= value] ...];
type為Java數據類型。identifier是變量名。可以使用逗號隔開來聲明多個同類型變量。可以聲明但不賦值。
獨立于方法之外的變量,用 static 修飾。
無論一個類創建了多少個對象,類只擁有類變量的一份拷貝。
靜態變量在第一次被訪問時創建,在程序結束時銷毀。與實例變量具有相似的可見性。但為了對類的使用者可見,大多數靜態變量聲明為public類型。
靜態變量屬于類,該類不生產對象,通過類名就可以調用靜態變量。
和大多數語言一樣,只存在于作用域內部的周期,函數或者方法運行完就銷毀。(注意JAVA不會給局部變量默認賦值,需要聲明的時候賦值)
獨立于方法之外的變量,不過沒有 static 修飾。實例變量聲明在一個類中,但在方法、構造方法和語句塊之外;
實例變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;
實例變量具有默認值。數值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構造方法中指定;
實例變量屬于該類的對象,必須產生該類對象,才能調用實例變量。
很多種類修飾符,主要分 非訪問修飾符和訪問修飾符:
default (即默認,什么也不寫):
在同一包內可見,不使用任何修飾符。大多數時候默認跟public差不多的權限和繼承。
注意:和default 的不同就是public 意味著任何地方的其他類都能訪問,而默認default只能在這個包內使用。
private :
在同一類內可見。最嚴格的的權限,只能給所處的類使用,甚至子類們也不能使用,也不能繼承。
注意:不能修飾類(外部類)
public :
對所有類可見。
注意:和default 的不同就是public 意味著任何地方的其他類都能訪問,而默認default只能在這個包內使用。
protected :
對同一包內的類和所有子類可見。
子類與基類在同一包中:被聲明為 protected 的變量、方法和構造器能被同一個包中的任何其他類訪問;
子類與基類不在同一包中:那么在子類中,子類實例可以訪問其從基類繼承而來的 protected 方法,而不能訪問基類實例的protected方法。
注意:不能修飾類(外部類)。
注意:
父類中聲明為 public 的方法在子類中也必須為 public。
父類中聲明為 protected 的方法在子類中要么聲明為 protected,要么聲明為 public,不能聲明為 private。
父類中聲明為 private 的方法,不能夠被繼承。
static:
分靜態變量和靜態方法,靜態變量見本文上面。
靜態方法:static關鍵字用來聲明獨立于對象的靜態方法。靜態方法不能使用類的非靜態變量。靜態方法從參數列表得到數據,然后計算這些數據。(靜態變量已經在內存中,而非靜態得等到他們聲明的時候才有)
靜態方法可以通過類名直接調用,而不需要實例化類的對象。這樣一些工具類里聲明靜態方法,用起來就比較方便。
final:
final 表示"最后的、最終的"含義,變量一旦賦值后,不能被重新賦值。也分變量和方法。
被 final 修飾的實例變量必須顯式指定初始值。final 修飾符通常和 static 修飾符一起使用來創建類常量。
父類中的 final 方法可以被子類繼承,但是不能被子類重寫。
聲明 final 方法的主要目的是防止該方法的內容被修改。
abstract :
抽象類不能用來實例化對象,聲明抽象類的唯一目的是為了將來對該類進行擴充。一個類不能同時被 abstract 和 final 修飾。如果一個類包含抽象方法,那么該類一定要聲明為抽象類,否則將出現編譯錯誤。
抽象方法是一種沒有任何實現的方法,該方法的的具體實現由子類提供。抽象方法不能被聲明成 final 和 static。
任何繼承抽象類的子類必須實現父類的所有抽象方法,除非該子類也是抽象類。
如果一個類包含若干個抽象方法,那么該類必須聲明為抽象類。抽象類可以不包含抽象方法。
synchronized :
synchronized 關鍵字聲明的方法同一時間只能被一個線程訪問。synchronized 修飾符可以應用于四個訪問修飾符。
transient :
序列化的對象包含被 transient 修飾的實例變量時,java 虛擬機(JVM)跳過該特定的變量。
該修飾符包含在定義變量的語句中,用來預處理類和變量的數據類型。
volatile:
volatile 修飾的成員變量在每次被線程訪問時,都強制從共享內存中重新讀取該成員變量的值。而且,當成員變量發生變化時,會強制線程將變化值回寫到共享內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。
一個 volatile 對象引用可能是 null。
讀到這里,這篇“Java變量類型和修飾符實例分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。