作者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