如何初始化類物件陣列,JAVA中怎麼初始化物件陣列?

2022-02-27 11:17:24 字數 7553 閱讀 3719

1樓:篤俠

物件陣列是由預設建構函式(即無參建構函式)初始化的。因此,你的提供參建構函式。

2樓:

stu=new student[5];這條語句定義了含有5個student物件的陣列,但沒有初始化,所以你要在類裡面加一個無參的建構函式

student()

3樓:

不知道你是從哪本書看到這麼一說的?建立物件的時候,就會呼叫預設建構函式?

你先要搞清楚,什麼時候會有預設建構函式存在?

當你沒有定義任何建構函式的時候,系統會自動給你新增了一個無引數、函式體為空的預設建構函式,一旦你自己定義了一個或者多個建構函式,不管他們有沒有帶引數,那麼系統將不再為你提供預設建構函式。。。

不信的話,你這樣子吧,把無引數的建構函式去掉,然後你宣告一個物件陣列,不進行初始化,即stock stocks[stks],是不是編譯不過?看看系統是不是提示沒有預設建構函式?

也就是說,當你定義了stock(...)這樣的建構函式之後,系統已不再給你提供預設建構函式了,更別提去呼叫它了……

假如說,你定義的時候,沒有顯式的去呼叫帶引數的建構函式去對物件陣列進行初始化的話,那麼它就會呼叫無引數的建構函式,去建立物件,如stock stocks[stks];

j**a中怎麼初始化物件陣列?

4樓:

初始化陣列有三種方式,以下都是去初始化一個string型別長度2的陣列:

方式一:

string strs = new string[2];

strs[0] = "0";

strs[1] = "1";

方式二:

string strs = new string;

方式三:

string strs = ;

三種方式,都有自己的使用場景,在合適場景使用即可。

5樓:小西

定義並初始化方法一:

string a = new string[3];

a[0] = "a";

a[1] = "b";

a[2] = "c";

定義並初始化方法二:

string b = new string;

6樓:匿名使用者

嗯,new之後只是分配了空間,如果不指定值,物件陣列空間對應的就是空。那麼如你所說,可否詳盡一下錯誤呢?

7樓:

stu=new student[5];這條語句定義了含有5個student物件的陣列,但沒有初始化,所以你要在類裡面加一個無參的建構函式

student()

8樓:

定義三個參量,後面兩個變數在應用的時候設為空就可以了!!

9樓:死後是好人

你這個試試對物件陣列的一個宣告,並沒有示例話,所以會報空指標異常這個陣列物件都是現用現初始化的

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();例項化,或者用linkedlistan=new linkedlist();定義一個動態陣列

10樓:匿名使用者

新增an[3]=an[4]=null;語句即可。

11樓:匿名使用者

new 之後本來就全為空

c# 如何初始化物件陣列

12樓:仙戈雅

namespace test

public person(string n,int a)public string name

public int age

}class program,

new person

};foreach (person p in person),",p.name,p.age);

}console.writeline();

// 方案二:直接初始化物件陣列

person person2 = new person;

console.readkey();}}}

13樓:dara的世界

class classes=new class[n];

14樓:測試成功上線

string arr =new string[i] i =隨機數

如何初始化char陣列

15樓:育知同創教育

char str[10]="hello";

char str[10]=;

char str[10]=;

char str[10]=;

char str[10]="hello, world.\n";

char str="hello, world.\n";

第一種情況:初始化資料小於陣列長度

如前面兩個初始化的例子,這兩個例子的效果一樣,前五個字元為hello,剩餘的用'\0'填充

第三行與第四行,都只指定了第一個字元,剩餘的全部用'\0'填充。第四個例子相當將整個陣列初始化為'\0'

第二種情況:初始化資料等於或超過資料長度

這種情況下,超出的部分將被丟棄,所以最五個例子的最後一個字元為'r'.

此時使用一些字串函式時要特別注意,因為該陣列不含有'\0',會造成不可預期的結果

第三種情況:不指定陣列長度

這種情況下,陣列部分如果不含有明確指定的'\0',那麼編譯時會被自動新增一個'\0';

在陣列不含有明確的'\0'時,sizeof=strlen+1

j**a中如何初始化物件陣列,並增加元素

16樓:熒光小草

如果有一個類叫做dog的話 可以這麼做

dog dog=new dog[50];

dog[0]=new dog();

dog[1]=new dog();

dog[2]=new dog();

.........

也可以用迴圈初始化

17樓:

class testarray

public void additem(int value)array[++length] = value;

}public int get(int index)}

物件陣列初始化(c#)

18樓:95郭逗比

一、一維:

int numbers = new int; //不定長

int numbers = new int[3];//定長

二、多維

int[,] numbers = new int[,],}; //不定長

int[,] numbers = new int[2,2],}; //定長

三、例子

a:int mf1=new int[6];

//注意初始化陣列的範圍,或者指定初值; //包含6個元素的一維整數陣列,初值1,2,3,4,5,6

int mf2=new int[6];

b://一維字串陣列,如果提供了初始值設定項,則還可以省略 new 運算子

string mf3=;

c://一維物件陣列

object mf4 = new object[5] ;

d://二維整數陣列,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4

int[,] mf5=new int[,],};

e://6*6的二維整型陣列

int[,] mf6=new mf[6,6];

四、取得陣列元素個數:

int b;

b = sizeof (a)/sizeof (*a);

c#字串及陣列操作

2007-12-12 17:53字串操作(取當前時間)

string time=convert.tostring(datetime.today).

split( new char ); textbox1.text=time[0]; 以空格作為分界點;

陣列概述

c# 陣列從零開始建立索引,即陣列索引從零開始。c# 中陣列的工作方式與在大多數其他流行語言中的工作方式類似。但還有一些差異應引起注意。

宣告陣列時,方括號 () 必須跟在型別後面,而不是識別符號後面。在 c# 中,將方括號放在識別符號後是不合法的語法。

int table; // not int table;

另一細節是,陣列的大小不是其型別的一部分,而在 c 語言中它卻是陣列型別的一部分。這使您可以宣告一個陣列並向它分配 int 物件的任意陣列,而不管陣列長度如何。

int numbers; // declare numbers as an int array of any size

numbers = new int[10]; // numbers is a 10-element array

numbers = new int[20]; // now it's a 20-element array

宣告陣列

c# 支援一維陣列、多維陣列(矩形陣列)和陣列的陣列(交錯的陣列)。下面的示例展示如何宣告不同型別的陣列:

一維陣列:int numbers;

多維陣列:string[,] names;

陣列的陣列(交錯的):byte scores;

宣告陣列(如上所示)並不實際建立它們。在 c# 中,陣列是物件(本教程稍後討論),必須進行例項化。下面的示例展示如何建立陣列:

一維陣列:int numbers = new int[5];

多維陣列:string[,] names = new string[5,4];

陣列的陣列(交錯的):byte scores = new byte[5]; for (int x = 0; x < scores.length; x++)

還可以有更大的陣列。例如,可以有三維的矩形陣列:int[,,] buttons = new int[4,5,3];

甚至可以將矩形陣列和交錯陣列混合使用。例如,下面的**宣告瞭型別為 int 的二維陣列的三維陣列的一維陣列int[,,][,] numbers;

初始化陣列

c# 通過將初始值括在大括號 ({}) 內為在宣告時初始化陣列提供了簡單而直接了當的方法。下面的示例展示初始化不同型別的陣列的各種方法。

注意 如果在宣告時沒有初始化陣列,則陣列成員將自動初始化為該陣列型別的預設初始值。另外,如果將陣列宣告為某型別的欄位,則當例項化該型別時它將被設定為預設值 null。

一維陣列

int numbers = new int[5] ;

string names = new string[3] ;

可省略陣列的大小,如下所示:

int numbers = new int ;

string names = new string ;

如果提供了初始值設定項,則還可以省略 new 運算子,如下所示:

int numbers = ;

string names = ;

多維陣列

int[,] numbers = new int[3, 2] , , };

string[,] siblings = new string[2, 2] , };

可省略陣列的大小,如下所示:

int[,] numbers = new int[,] , , };

string[,] siblings = new string[,] , };

如果提供了初始值設定項,則還可以省略 new 運算子,如下所示:

int[,] numbers = , , };

string[,] siblings = , };

交錯的陣列(陣列的陣列)

可以像下例所示那樣初始化交錯的陣列:

int numbers = new int[2] , new int };

可省略第一個陣列的大小,如下所示:

int numbers = new int , new int };-或-

int numbers = , new int };

請注意,對於交錯陣列的元素沒有初始化語法。

訪問陣列成員

訪問陣列成員可以直接進行,類似於在 c/c++ 中訪問陣列成員。例如,下面的**建立一個名為 numbers 的陣列,然後向該陣列的第五個元素賦以 5:

int numbers = ;

numbers[4] = 5;

下面的**宣告一個多維陣列,並向位於 [1, 1] 的成員賦以 5:

int[,] numbers = , , , , };

numbers[1, 1] = 5;

下面宣告一個一維交錯陣列,它包含兩個元素。第一個元素是兩個整數的陣列,第二個元素是三個整數的陣列:

int numbers = new int , new int };

下面的語句向第一個陣列的第一個元素賦以 58,向第二個陣列的第二個元素賦以 667:

numbers[0][0] = 58;

numbers[1][1] = 667;

陣列是物件

在 c# 中,陣列實際上是物件。system.array 是所有陣列型別的抽象基型別。

可以使用 system.array 具有的屬性以及其他類成員。這種用法的一個示例是使用「長度」(length) 屬性獲取陣列的長度。

下面的**將 numbers 陣列的長度(為 5)賦給名為 lengthofnumbers 的變數:

int numbers = ;

int lengthofnumbers = numbers.length;

system.array 類提供許多有用的其他方法/屬性,如用於排序、搜尋和複製陣列的方法。

對陣列使用 foreach

c# 還提供 foreach 語句。該語句提供一種簡單、明瞭的方法來迴圈訪問陣列的元素。例如,下面的**建立一個名為 numbers 的陣列,並用 foreach 語句迴圈訪問該陣列:

int numbers = ;

foreach (int i in numbers)

由於有了多維陣列,可以使用相同方法來迴圈訪問元素,例如:

int[,] numbers = new int[3, 2] , , };

foreach(int i in numbers) ", i);}

該示例的輸出為: 9 99 3 33 5 55

不過,由於有了多維陣列,使用巢狀 for 迴圈將可以更好地控制陣列元素。

C 中類的建構函式的隱式初始化和顯示初始化怎麼理解

隱式初始化可以理解為自己不做任何的操作,有系統環境幫你完成變數的初始化。顯示的就是自己的操作了啊。隱式初始化,即在main 函式中,沒有顯式呼叫建構函式的語句。建構函式是在定義物件時被系統自動呼叫。如 類名 物件名 實參表 那麼顯式初始化應該是先宣告物件,再呼叫建構函式 即類名 物件名 物件名 建構...

4 請問,在C 類中如何初始化const和static資料成員

const資料成員只能在成員初始化列表進行初始化,static資料成員只能在類外進行初始化。static const資料成員既可以在宣告時初始化,也可以在類外初始化。下面是一個例子 include using namespace std class a public a ci 1 void outp...

有關於C 多維陣列的初始化,C 的二維陣列初始化

c 是在c語言的基礎上開發的一種物件導向程式語言,應用廣泛。c 支援多種程式設計正規化 物件導向程式設計 泛型程式設計和過程化程式設計。最新正式標準c 於2014年8月18日公佈。其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類 類...