java 有什么方法可以动态或循环的生成对象名
例如,一个Student类,自己手动new时Students1=newStudent();Students2=newStudent();我想的是s1和s2可不可以通过循环...
例如,一个Student类,自己手动new时
Student s1=new Student();
Student s2=new Student();
我想的是s1和s2可不可以通过循环或其他动态方法来指定,最好来个例子 展开
Student s1=new Student();
Student s2=new Student();
我想的是s1和s2可不可以通过循环或其他动态方法来指定,最好来个例子 展开
8个回答
展开全部
根据楼主你的意思,这样声明就可以了,没必要那么高深
假设Student类如下:
public class Student{
private int l;
Student(){
l=0;
}
Student(int k){
l=k;
}
public int get() {
// TODO Auto-generated method stub
return l;
}
}
那么楼主声明的时候只要这样就可以了
Student []s=new Student[20];//这里不要用()只需要声明数组就可以了,可以动态指定
for(int i=0;i<20;i++)//s必须要用是s[i]这种带数字下标的来声明对象
s[i]=new Student(i+1);
调用的时候
for(int j=0;j<20;j++){
System.out.print(s[i].get()+"\t");
就可以了
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
main的代码为:
public static void main(String args[]){
G []g=new G[20];
for(int i=0;i<20;i++)
g[i]=new G(i+1);
for(int i=0;i<20;i++)
System.out.print(g[i].get()+"\t");
}
相信楼主你已经会用了
假设Student类如下:
public class Student{
private int l;
Student(){
l=0;
}
Student(int k){
l=k;
}
public int get() {
// TODO Auto-generated method stub
return l;
}
}
那么楼主声明的时候只要这样就可以了
Student []s=new Student[20];//这里不要用()只需要声明数组就可以了,可以动态指定
for(int i=0;i<20;i++)//s必须要用是s[i]这种带数字下标的来声明对象
s[i]=new Student(i+1);
调用的时候
for(int j=0;j<20;j++){
System.out.print(s[i].get()+"\t");
就可以了
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
main的代码为:
public static void main(String args[]){
G []g=new G[20];
for(int i=0;i<20;i++)
g[i]=new G(i+1);
for(int i=0;i<20;i++)
System.out.print(g[i].get()+"\t");
}
相信楼主你已经会用了
展开全部
public class Test {
public static void main(String[] args) {
//定义num规定你要多少对象 假如要5个
int num=5;
//则返回后 stu[0]到stu[4]就是这五个Student的对象
Student[] stu=getStudentInstance(num);
}
private static Student[] getStudentInstance(int num) {
Student[] stu =new Student[num];
for (int i=0;i<num;i++)
{
stu[i]=new Student();
}
return stu;
}
}
public static void main(String[] args) {
//定义num规定你要多少对象 假如要5个
int num=5;
//则返回后 stu[0]到stu[4]就是这五个Student的对象
Student[] stu=getStudentInstance(num);
}
private static Student[] getStudentInstance(int num) {
Student[] stu =new Student[num];
for (int i=0;i<num;i++)
{
stu[i]=new Student();
}
return stu;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不行。变量名和类实例的引用名必须是符合规则的字符串常量,不能是变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List<Student> list = new ArrayList<Student>();
for (int i = 0; i < 10; i++) {
try {
list.add((Student)Student.class.newInstance());
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
System.out.println(list);
for (int i = 0; i < 10; i++) {
try {
list.add((Student)Student.class.newInstance());
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
System.out.println(list);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过反射机制就可以了
追问
能写个简单例子么
追答
你可以看下那位写的,差不多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询