Re: [問題] 建構子能宣告陣列嗎?(新手)

看板java作者 (!H45)時間19年前 (2006/03/23 08:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《tsaiminghan (tsaiminghan)》之銘言: : 我想要宣告一個index給Student class內的方法用 : 不過搞不清楚要如何做? : 一開始我是把紅色部分放到student的建構子內,綠色放到Student class內 : 可是似乎沒用,編譯可以過,但執行的時候會出現說, : 我沒有實體化index,最後改成這樣才能動 : 我想請問一下我是搞錯什麼問題? : 另想請教一下,在C語言中能用malloc來作動態陣列, : 在java中,比如一個stack發現用完了,一般是如何增加它的大小? : =========================== : public class Student{ : data index[]; : int counts = 0; : public static void main( String Args[] ){ : data index[] = new data[100]; : for(int i=0;i<100;i++) : index[i] = new data(); : Student aaa = new Student(index); : } : public static class data{ : String id; : String name; : int age; : } : public Student(data inputindex[]){ : index = inputindex; : } : ........... : } 如果是我會這樣寫: Student.java: public class Student{ private data index[]; private int counts = 0; public Student(data inputindex[]){ index = inputindex; } } data.java: public class data{ public String id; public String name; public int age; } Main.java: public class Main { public static void main( String Args[] ){ data index[] = new data[100]; for(int i=0;i<100;i++) index[i] = new data(); Student aaa = new Student(index); } } 如果未初始化data陣列,即預先放入Student物件 那麼縱使未來初始化data陣列,Student物件內存的data陣列不會被更動 這是因為初始化data陣列,已經改變了參考位置,所以與data原先存放的參考不同。 stack要增加一個元素,只需要push(element)即可。 java.util.Stack<E>: E push(E item) Pushes an item onto the top of this stack. 如果是vector,則是all(E o) java.util.Vector<E> boolean add(E o) Appends the specified element to the end of this Vector. 如果一個陣列用完了,除非創造另一個陣列,否則無法增加大小。 你可以參考:java.util.ArrayList<E> JavaTM 2 Platform Standard Ed. 5.0 Java 2 Platform API Specification 連結如下: http://java.sun.com/j2se/1.5.0/docs/api/index.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.207.15
文章代碼(AID): #148UmoWG (java)
文章代碼(AID): #148UmoWG (java)