當前位置:首頁 » 編程語言 » 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-07-02 00:12:28 瀏覽:345
shell腳本需要編譯鏈接 發布:2025-07-02 00:04:20 瀏覽:474
微信如何重設密碼 發布:2025-07-02 00:02:27 瀏覽:545
java代碼基礎 發布:2025-07-02 00:00:46 瀏覽:304
煙花的代碼c語言 發布:2025-07-01 23:56:04 瀏覽:224
安卓默認打開文件方式怎麼修改 發布:2025-07-01 23:30:38 瀏覽:863
壓縮機接線座 發布:2025-07-01 23:17:48 瀏覽:664
iqoo瀏覽器緩存路徑 發布:2025-07-01 23:12:38 瀏覽:693
明日之後如何獲得最新伺服器 發布:2025-07-01 23:12:35 瀏覽:52
tv加密頻道 發布:2025-07-01 23:10:58 瀏覽:625