我有以下代码段用于基元数组实例化
int[] a = new int[] {10, 20, 30}
是否可以对任何对象阵列实例化执行相同的操作? 像...这样的东西。
public class MyObject {
int a;
char b;
}
然后:
public class Main(){
public static void main(String[] args){
MyObject[] = new MyObject[] { {10, 'a'}, {20, 'b'}}
}
}
答案 0 :(得分:6)
不含蓄。您必须使用构造函数来初始化每个对象。这是一个例子:
public class Example {
static class MyObject {
int a;
char b;
public MyObject(int a, char b) {
this.a = a;
this.b = b;
}
}
public static void main(String[] args) {
MyObject[] objs = new MyObject[] {new MyObject(10, 'a'), new MyObject (20, 'b')};
}
}
答案 1 :(得分:3)
您需要在MyObject
类中编写相应的构造函数(它需要int
和char
个参数并初始化成员a
和{{1然后使用:
b
答案 2 :(得分:2)
您必须在类中声明一个构造函数。
public class MyObject {
int a;
char b;
MyObject(int a, char b){
this.a = a;
this.b = b;
}
}
之后你可以像这样初始化数组
MyObject[] somedamn = new MyObject[] { new MyObject(10,'a'), new MyObject(20,'b')};
答案 3 :(得分:0)
在MyObject
课程中创建一个构造函数:
public MyObject(int x, char c) {
// comment: set them equal to the variables you put up in your MyObject class already
}
然后您可以在Main
班级中创建一个对象:
MyObject object1 = new MyObject(10, 'a');
然后将object1
放入数组:array[0] = object1
。
或者您可以将new MyObject(10, 'a')
直接存储到数组中 - 但如果您不熟悉它可能会有点难以理解。