我在 Java 中有一个类,它有 2 个字段,例如
Class A
{
int i;
double v;
}
我制作了一个 A 类对象数组,例如:
A[] x = new A[3];
将内存分配给对象后,我将值分配给对象,例如:
A[0].i = 1;
A[0].v = 2.5;
A[1].i = 2;
A[1].v = 3.5;
A[2].i = 55;
A[2].v = 1.5;
我想知道是否有更好的方法来初始化对象值。
我在 Java 中有一个类,它有 2 个字段,例如
Class A
{
int i;
double v;
}
我制作了一个 A 类对象数组,例如:
A[] x = new A[3];
将内存分配给对象后,我将值分配给对象,例如:
A[0].i = 1;
A[0].v = 2.5;
A[1].i = 2;
A[1].v = 3.5;
A[2].i = 55;
A[2].v = 1.5;
我想知道是否有更好的方法来初始化对象值。
public class A {
int i;
double v;
public A(int ii, double dd) {
i = ii;
v = dd;
}
public static void main(String[] args) {
A[] a = new A[10]; // size
for (int i = 0; i < a.length; i++) {
a[i] = new A(1, 1.0);
}
}
}
您也可以通过这种方式填充元素:
A[] a = new A[] { new A(1, 2.5), new A(2, 3.5), new A(55, 1.5) };
是:使用构造函数:
A[] x = new A[]{new A(1, 2.5), ... };
更新:写。在下面发表评论:
// Fake constructor
public static A new_A(int i, double v) {
A x = new A();
x.i = i;
x.v = v;
return x;
}
A[] x = new A[]{new_A(1, 2.5), ... };
Class A
{
private int i;
private double v;
void setI(int i){
this.i =i;
}
void setV(double v){
this.v =v;
}
}
之后赋值像 A[0].setI(1); 也为变量提供 getter。
去找 setters\getters 和一个构造函数。
class A {
int i;
double v;
public A(int i, double v) {
super();
this.i = i;
this.v = v;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public double getV() {
return v;
}
public void setV(double v) {
this.v = v;
}
}
如果你用这 3 个值初始化它,你也可以这样做:
A[] x = {new A(1,2.5), new A(2, 3.5), new A(55,1.5)};
修改你的代码如下
Class A
{
private int i;
private double v;
public A(int x,double y)
{
i=x;
v=y;
}
}
class mainclass{
public static void Main(String []args)
{
A[] x = new A[3];
double i=1,v=2.5;
for(int i=0;i<2;i++)
{
x[i]=new A(i,v);
i+=1;
v+=1.0;
}
x[3]=new A(55,1.5);
}