Java如何用abc参数初始化构造函数

Java如何用abc参数初始化构造函数,java,arrays,constructor,Java,Arrays,Constructor,我的问题1。我不知道如何处理以上问题 /* Standalone java class file AbcDef.java */ public class AbcDef { public void AbcDef(Abc[] abc) { something ???; } } 我的问题2。我不知道如何初始化数组并为其赋值 任何专业人士都可以指点我完成这项工作。谢谢 /* Standalone java class file A

我的问题1。我不知道如何处理以上问题

/* Standalone java class file AbcDef.java */
    public class AbcDef {
        public void AbcDef(Abc[] abc) {
            something ???;
        }
    }
我的问题2。我不知道如何初始化数组并为其赋值 任何专业人士都可以指点我完成这项工作。谢谢

/* Standalone java class file Abc.java */
    public class Abc {
        private String name;
        private int age;

        // Constructor...

        // Getters...

        public void setAbc(String nName, int nAge) {
            name = nName;
            age = nAge;
        }
    }

/* Another Test class file TestAbcDef.java */
    public class TestAbcDef {

        AbcDef[] tAbcDef = new AbcDef[];

/* e.g. i need to assign 10 records into tAbcDef[x] */
/* tAbcDef[0] = (name[1], age[1]),(name[2], age[2])....
或者,如果您需要AbcDef数组:

 public class AbcDef {
    private Abc[] abc;
    public AbcDef(Abc... abc) {
        this.abc = abc;
    }  
}

public class Abc {
    private String name;
    private int age;
    public Abc(String nName, int nAge) {
        name = nName;
        age = nAge;
    }
}

AbcDef tAbcDef = new AbcDef( new Abc( "joe", 10 ), new Abc( "Bill", 20) );
定义数组长度的另一种方法是提供所有元素:

AbcDef[] vAbcDef = new AbcDef[3];
vAbcDef[0] = tAbcDef;
vAbcDef[1] = new AbcDef( new Abc( "Sue", 30 ), new Abc( "Liz", 40) );
vAbcDef[2] = new Abc( "PEte", 50 ) );
问题1: 这取决于您希望在构造函数中执行的操作。在使用构造函数之前,您将准备对象。知道你可以:

空白的生活没有什么问题,它会工作,但我想你想做一些与你的abc参数

用你的参数做点什么。您可以初始化一个类变量,例如:

AbcDef[] vAbcDef = new AbcDef[]{ tAbcDef, 
                                 new AbcDef( new Abc( "Sue", 30 ), new Abc( "Liz", 40)),
                                 new AbcDef( new Abc( "PEte", 50 ) ) };
}

您可以阅读有关构造函数的内容

问题2

当你声明一个数组时,你必须考虑数组长度是固定的,所以你应该在创建它时设置它。这可以通过以下方式完成:

 public class AbcDef {
    Abc[] arrayABC
    public void AbcDef(Abc[] abc){
        arrayABC=abc; // initialize class variable arrayABC with abc parameter.
 }
你是说我声明的tabcdef数组是一个长度等于9的AbcDef数组

一旦你创建了它,你就可以通过

 AbcDef[] tAbcDef = new AbcDef[9];

希望对您有所帮助

您的代码甚至可以编译吗?您使用类的名称而不是构造函数创建了一个方法。删除空。正在尝试定义构造函数或方法..?Q1要定义并初始化构造函数。感谢阿披实。注意,我总是混淆构造函数和方法。谢谢Martijn。
tAbcDef[0]= whatever;
...