作者H45 (!H45)
看板java
標題Re: [問題] 建構子能宣告陣列嗎?(新手)
時間Thu Mar 23 09:00:01 2006
※ 引述《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