亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用Java創建對象數組

用Java創建對象數組

呼啦一陣風 2019-08-09 16:22:59
用Java創建對象數組我是Java的新手,并且當時在Java中創建了一個對象數組。我有一個例如A級 -A[] arr = new A[4];但這只是為A而不是4個對象創建指針(引用)。它是否正確?我看到當我嘗試訪問創建的對象中的函數/變量時,我得到一個空指針異常。為了能夠操縱/訪問我必須這樣做的對象 -A[] arr = new A[4];for( int i=0; i<4; i++ )     arr[i] = new A();這是正確的還是我做錯了什么?如果這是正確的,那真的很奇怪。編輯:我發現這很奇怪,因為在C ++中你只是說新的A [4]并且它創建了四個對象。
查看完整描述

3 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

這是對的。

A[] a = new A[4];

創建4個A引用,類似于這樣做

A a1;A a2;A a3;A a4;

現在你不能在不分配a1的情況下執行a1.someMethod()

a1 = new A();

同樣,您需要使用陣列

a[0] = new A();

在使用它之前。


查看完整回答
反對 回復 2019-08-09
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

這是對的。你也可以這樣做:

A[] a = new A[] { new A("args"), new A("other args"), .. };

此語法還可用于在任何位置創建和初始化數組,例如在方法參數中:

someMethod( new A[] { new A("args"), new A("other args"), . . } )


查看完整回答
反對 回復 2019-08-09
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

是的,它只創建引用,將其設置為默認值null。這就是你得到NullPointerException的原因你需要單獨創建對象并分配引用。在Java中創建數組有3個步驟 -


聲明 - 在此步驟中,我們指定數據類型和要創建的數組的維度。但請記住,我們還沒有提到尺寸的大小。他們是空的。


實例化 - 在此步驟中,我們使用new關鍵字創建數組或為數組分配內存。在這一步中,我們提到了陣列尺寸的大小。


初始化 - 數組始終初始化為數據類型的默認值。但我們可以進行自己的初始化。


在Java中聲明數組

這是我們在Java中聲明一維數組的方法 -


int[] array;

int array[];

Oracle建議您使用以前的語法來聲明數組。以下是法律聲明的其他一些例子 -


// One Dimensional Arrays

int[] intArray;             // Good

double[] doubleArray;


// One Dimensional Arrays

byte byteArray[];           // Ugly!

long longArray[];


// Two Dimensional Arrays

int[][] int2DArray;         // Good

double[][] double2DArray;


// Two Dimensional Arrays

byte[] byte2DArray[];       // Ugly

long[] long2DArray[];

這些是非法聲明的一些例子 -


int[5] intArray;       // Don't mention size!

double{} doubleArray;  // Square Brackets please!

實例化

這就是我們“實例化”或為數組分配內存的方法 -


int[] array = new int[5];

當JVM遇到new關鍵字時,它理解它必須為某些東西分配內存。通過指定int[5],我們意味著我們需要一個int大小為5 的s 數組。因此,JVM創建內存并將新分配的內存的引用分配給類型為“引用”的類型int[]


初始化

使用循環 - 使用for循環初始化數組元素是獲取數組的最常用方法。如果您要自己分配默認值,則無需運行for循環,因為JVM會為您執行此操作。


一體..! - 我們可以一次性聲明,實例化和初始化我們的數組。這是語法 -


int[] arr = {1, 2, 3, 4, 5};

在這里,我們沒有提到大小,因為JVM可以看到我們給出了5個值。


因此,在我們實例化之前,引用保持為null。我希望我的回答能幫助你......!:)

源 - Java中的數組


查看完整回答
反對 回復 2019-08-09
  • 3 回答
  • 0 關注
  • 1166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號