導航:首頁 > 編程語言 > java屬性初始化

java屬性初始化

發布時間:2022-05-04 22:03:35

A. java中為什麼要為類的屬性初始化

你好,初始化可以使類一產生對象就擁有自身的屬性值。
比如創建一個人初始化他的名字,年齡等。
一創建人這個對象就擁有名字年齡等屬性值。
當然也可以不初始化,在需要的時候調用方法進行初始化。

如果滿意,請採納,謝謝。

B. java中一個類的屬性何時初始化

我們知道一個類(class)要被使用必須經過裝載,連接,初始化這樣的過程。下面先對這三階段做一個簡單的描述,之後會結合一個簡單的例子來說明java中類的初始化過程。

在裝載階段,類裝載器(Bootstrap ClassLoader 或者用戶自定義的ClassLoader) 把編譯形成的class文件載入內存,創建類相關的Class對象,這個Class對象封裝了我們要使用的類的類型信息。

連接階段又可以分為三個子步驟:驗證、准備和解析。
驗證就是要確保java類型數據格式 的正確性,並適於JVM使用。
准備階段,JVM為靜態變數分配內存空間,並設置默認值,注意,這里是設置默認值,比如說int型的變數會被賦予默認值0 。在這個階段,JVM可能還會為一些數據結構分配內存,目的 是提高運行程序的性能,比如說方法表。
解析過程就是在類型的常量池中尋找類、介面、欄位和方法的符號引用,把這些符號引用替換成直接引用。這個階段可以被推遲到初始化之後,當程序運行的過程中真正使用某個符號引用的時候 再去解析它。

類會在首次被「主動使用」時執行初始化,為類(靜態)變數賦予正確的初始值。在Java代碼中,一個正確的初始值是通過類變數初始化語句或者靜態初始化塊給出的。而我們這里所說的主動使用 包括:
1. 創建類的實例
2. 調用類的靜態方法
3. 使用類的非常量靜態欄位
4. 調用Java API中的某些反射方法
5. 初始化某個類的子類
6. 含有main()方法的類啟動時

初始化一個類包括兩個步驟:
1、 如果類存在直接父類的話,且直接父類還沒有被初始化,則先初始化其直接父類
2、 如果類存在一個初始化方法,就執行此方法
註:初始化介面並不需要初始化它的父介面。
追問
你這不是初始化實例么

C. Java類屬性初始化是什麼

1.我們都知道java是面向對象的語言, 那麼類就好比是一個模板, 比如Student類, 這個類其實是一個模板, 是一個規范.

然後我們執行下面這行代碼

Student xiaoMing = new Student();

就相當於我們用Student這個模板去生成了一個對象, 這個對象叫xiaoMing.

如果Student這個類有一個屬性private int age;當我們只是做上面new對象的動作時候, xiaoMing的age並沒有被賦值, 只是初始化成了0

(數值類型的屬性初始化都是0, String則是null, 例如有個字元串類型的屬性name就會是null)

然後xiaoMing.setAge(10); 那麼這個時候xiaoMing的age屬性才變成10,

所以類屬性初始化指的就是在new對象的時候對各個屬性賦予一個初始化的值.

2.為什麼要用構造方法進行屬性初始化:

這個並不是強制的, 構造方法分成無參構造和帶參構造, 用構造方法對屬性進行初始化只是單純的為了方便而已.

D. java中屬性的初始化方法

屬性的類型不同初始化的方法也不一樣吧。除了Java的內建類型以為的數據類型初始化的話都是用new關鍵字來實現的。

E. 在java中變數一定要初始化嗎

不同的變數初始化方法不同。
變數包括:
類的屬性,或者叫值域
方法里的局部變數
方法的參數
對於第一種變數,Java虛擬機會自動進行初始化。如果給出了初始值,則初始化為該初始值。如果沒有給出,則把它初始化為該類型變數的默認初始值。
int類型變數默認初始值為0
float類型變數默認初始值為0.0f
double類型變數默認初始值為0.0
boolean類型變數默認初始值為false
char類型變數默認初始值為0(ASCII碼)
long類型變數默認初始值為0
所有對象引用類型變數默認初始值為null,即不指向任何對象。注意數組本身也是對象,所以沒有初始化的數組引用在自動初始化後其值也是null。
對於兩種不同的類屬性,static屬性與instance屬性,初始化的時機是不同的。instance屬性在創建實例的時候初始化,static屬性在類載入,也就是第一次用到這個類的時候初始化,對於後來的實例的創建,不再次進行初始化。這個問題會在以後的系列中進行詳細討論。

對於第二種變數,必須明確地進行初始化。如果再沒有初始化之前就試圖使用它,編譯器會抗議。如果初始化的語句在try塊中或if塊中,也必須要讓它在第一次使用前一定能夠得到賦值。也就是說,把初始化語句放在只有if塊的條件判斷語句中編譯器也會抗議,因為執行的時候可能不符合if後面的判斷條件,如此一來初始化語句就不會被執行了,這就違反了局部變數使用前必須初始化的規定。但如果在else塊中也有初始化語句,就可以通過編譯,因為無論如何,總有至少一條初始化語句會被執行,不會發生使用前未被初始化的事情。對於try-catch也是一樣,如果只有在try塊里才有初始化語句,編譯部通過。如果在catch或finally里也有,則可以通過編譯。總之,要保證局部變數在使用之前一定被初始化了。所以,一個好的做法是在聲明他們的時候就初始化他們,如果不知道要出事化成什麼值好,就用上面的默認值吧!其實第三種變數和第二種本質上是一樣的,都是方法中的局部變數。只不過作為參數,肯定是被初始化過的,傳入的值就是初始值,所以不需要初始化。

F. java裡面什麼叫為屬性初始化

初始化根據字面意思比較容易理解 就是給屬性賦一個初始值
比如你定義了一個屬性整型的age:
private int age; //這樣算是定義了一個 但是並沒有初始化
private int age=20;//這樣才算初始化
如果你在調用時 又沒初始化它 有時候就會出現問題 比如:
public class Test {
public static void main(String...args){
int a;
System.out.println(a);//編譯出錯 變數a沒有初始化
}
}
基本數據類型作為類成員變數,無論初始化與否都不會出錯。
作為函數代碼里的變數,無論什麼類型不初始化全部都會報錯。
比如下面這樣就不會報錯了
public class Test {
private int a;
public void print(){
System.out.println(a);
}
public static void main(String...args){
Test t = new Test();
t.print();
}
}
不過你要問的是什麼是初始化啊 哈哈 看最前面一點就行了 後面看著糊塗就先暫時不用管吧 學到後面的時候 你再回過頭來看 自然就懂了

G. java的屬性的初始化方法 是怎樣的

初始化就是在變數的後面附值。對於對象的初始化,一般是要用到關鍵字new,如果沒有學到對象的話,還是不用記的,這時的初始化還包含於實例化,但實例化還是有一種方法就是將變數或這方法用關鍵字static該它定義為靜態,這樣也是一種實例化的ff。如果聽不懂還是先不要急,只要知道是在變數後賦值就行

H. java中成員或類變數自動初始化是什麼意思

成員變數相當於你的名字,出生就有,如果你父母來不及取,默認是寶寶。局部變數相當於你在公司或者學校的外號,進公司或學校才有,出了公司和學校就沒了,而如果沒有人給你取外號,那麼你就沒有外號,沒有默認值。
成員變數在類存在的時候就已經初始化了,局部變數只有該方法被調用的時候才初始化。局部變數一定要賦初值,否則報錯,成員變數如果不賦初值,系統默認給。

閱讀全文

與java屬性初始化相關的資料

熱點內容
黑馬程序員退學流程 瀏覽:361
網頁伺服器崩潰怎麼回事 瀏覽:650
cnc編程前景怎麼樣 瀏覽:319
lniux命令詳解 瀏覽:493
linuxmysql查詢日誌 瀏覽:368
老捷達夥伴壓縮比 瀏覽:93
改後綴加密 瀏覽:432
郵局選址問題演算法 瀏覽:14
河北伺服器內存雲主機 瀏覽:12
在電腦上怎麼找到加密狗圖標 瀏覽:435
電腦的瀏覽器怎麼打開pdf文件怎麼打開 瀏覽:142
pdf卡片庫下載 瀏覽:11
單片機中二進製表示什麼 瀏覽:725
java網路編程推薦 瀏覽:795
施耐德開關編程 瀏覽:66
組織胚胎學pdf 瀏覽:844
linux查看發包 瀏覽:496
加密貨幣交易所暴利時代 瀏覽:824
歌詞滾動效果android 瀏覽:14
程序員一天的六場戰斗 瀏覽:797