當前位置:首頁 » 編程語言 » java初始化的方法

java初始化的方法

發布時間: 2022-09-10 18:30:16

1. java怎麼對象的初始化

(1) 非靜態對象的初始化

在創建對象時,對象所在類的所有數據成員會首先進行初始化。

基本類型:int型,初始化為0。

如果為對象:這些對象會按順序初始化。

※在所有類成員初始化完成之後,才調用本類的構造方法創建對象。

構造方法的作用就是初始化。

(2) 靜態對象的初始化

程序中主類的靜態變數會在main方法執行前初始化。

不僅第一次創建對象時,類中的所有靜態變數都初始化,並且第一次訪問某類(注意此時

未創建此類對象)的靜態對象時,所有的靜態變數也要按它們在類中的順序初始化。

2. 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里也有,則可以通過編譯。總之,要保證局部變數在使用之前一定被初始化了。所以,一個好的做法是在聲明他們的時候就初始化他們,如果不知道要出事化成什麼值好,就用上面的默認值吧!其實第三種變數和第二種本質上是一樣的,都是方法中的局部變數。只不過作為參數,肯定是被初始化過的,傳入的值就是初始值,所以不需要初始化。

3. java中一維數組的定義及初始化的方法有哪幾種

兩種:
1 int a[]=new int[10]
for(int i=0;i<10'i++){
a[i]=i+1;
}
2 int[] b={1,2,3,4,5,6}

4. JAVA中 數據初始化的三種方法是什麼

public
class
staticinitialization
{
public
static
void
main(string[]
args)
{
system.out.println("creating
new
cupboard()
in
main");
new
cupboard();
system.out.println("creating
new
cupboard()
in
main");
new
cupboard();
t2.f2(1);
t3.f3(1);
}
static
table
t2
=
new
table();//1:標記位1
static
cupboard
t3
=
new
cupboard();//2
標記位2
}
//
/:~
/**
1:要執行main方法,必須先載入staticinitialization,載入過程中,發現有靜態變數t2,首先執行t2
=
new
table()
new
table()需要實例化table,必須先載入table類
載入table類的過程中,發現table類也有靜態變數,首先執行static
bowl
b1
=
new
bowl(1);過程和上面一樣,要去創建bow1
創建之前載入bow1類,載入完畢,調用bow1的構造方法,於是列印出「bowl(1)」
b1實例化(創建)完成
然後執行static
bowl
b2
=
new
bowl(2);
再次調用bow1構造方法,列印「bowl(2)」
這時候table類載入完畢,開始實例化t2變數,調用table類構造方法,列印「table()」
執行b2.f(1);
列印「f(1)」
2:道理和上面1一樣,只是在cupboard中,static變數初始化完畢之後,還要去初始化一個非static變數
最後執行main中的方法,注意的是,此時table,cupboard
這2個類的載入過程已經完成,之後創建這2個類的實例的過程中,不再去初始化static變數
有其他問題在hi我
*/

5. JAVA中怎麼初始化對象數組

你這個試試對對象數組的一個聲明,並沒有示例話,所以會報空指針異常
這個數組對象都是現用現初始化的
Animals [] an=new Animals[5];//這只是個對象類型數組的聲明
用的時候需要
for(int i=0;i<5;i++)
an[i]=new Animals();
這樣你明白了吧
你前面的那個光聲明了數組,但是沒有調用Animals的構造函數,你數組里的每個元素都是一個對象,使用前必須要先實例化
如果你只是用戶輸入長度,
Animals [] an=new Animals[n];
聲明時是可以用變數的
或者你直接Animals [] an=new Animals[100];定義一個大數組,要用的時候再new Animals();實例化,或者用LinkedList<Animals> an=new LinkedList<Animals>();定義一個動態數組

6. 如何初始化java數組

Java數組初始化的兩種方法:

1、靜態初始化:程序員在初始化數組時為數組每個元素賦值;

2、動態初始化:數組初始化時,程序員只指定數組的長度,由系統為每個元素賦初值。

代碼如下:

[java]viewplainprint?
publicclassArrayInit{
publicstaticvoidmain(String[]args){

//靜態初始化數組:方法一
Stringcats[]=newString[]{
"Tom","Sam","Mimi"
};

//靜態初始化數組:方法二
Stringdogs[]={"Jimmy","Gougou","Doggy"};

//動態初始化數據
Stringbooks[]=newString[2];
books[0]="ThinkinginJava";
books[1]="EffectiveJava";

System.out.println(cats.length);
System.out.println(dogs.length);
System.out.println(books.length);
}
}

7. JAVA中 數據初始化的三種方法是什麼

int a[]; //聲明未初始化
a = new int [10]; // 定義佔用空間大小(10個int)
int a[] = new int [10]; //聲明並定義大小(即分配了指定大小的空間)
int a[] = {1,2,3}; // 聲明並初始化,佔用空間大小是3個int。
希望能對你有所幫助。

8. Java中對象如何初始化

初始化數組有三種方式,以下都是去初始化一個String類型長度2的數組:
方式一:
123String[] strs = new String[2];strs[0] = "0";strs[1] = "1";
方式二:

1String[] strs = new String[]{"0", "1"};
方式三:
1String[] strs = {"0", "1"};
三種方式,都有自己的使用場景,在合適場景使用即可。

9. java中怎麼給變數初始化

不同的變數初始化方法不同。

變數包括:

  1. 類的屬性,或者叫值域

  2. 方法里的局部變數

  3. 方法的參數

對於第一種變數,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里也有,則可以通過編譯。總之,要保證局部變數在使用之前一定被初始化了。所以,一個好的做法是在聲明他們的時候就初始化他
們,如果不知道要出事化成什麼值好,就用上面的默認值吧!

其實第三種變數和第二種本質上是一樣的,都是方法中的局部變數。只不過作為參數,肯定是被初始化過的,傳入的值就是初始值,所以不需要初始化。

10. JAVA 對象的初始化到底有幾種形式

1、構造器
創建對象時初始化,比較常見。
classa{
publica()
{}
}
public
2、初始化塊
較少見,用於有特殊要求的類。
static
{
}
3、方法
即setter方法,雖然方便(不必在創建對象時一次性初始化),但是可能引發空指針異常。

熱點內容
演算法工作原理 發布:2025-01-12 20:36:38 瀏覽:24
網路訪問監控軟體 發布:2025-01-12 20:26:57 瀏覽:465
養羊啦源碼 發布:2025-01-12 20:25:48 瀏覽:570
軒逸朗逸哪個配置最好 發布:2025-01-12 20:10:00 瀏覽:49
主板存儲器分 發布:2025-01-12 20:04:46 瀏覽:376
資料庫邏輯運算 發布:2025-01-12 20:03:54 瀏覽:571
javawindows伺服器搭建 發布:2025-01-12 19:59:37 瀏覽:570
linux關閉iptables 發布:2025-01-12 19:58:49 瀏覽:150
伺服器電腦名字改了影響資料庫嗎 發布:2025-01-12 19:58:44 瀏覽:652
手機存儲優化 發布:2025-01-12 19:58:43 瀏覽:356