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

时间:2014-12-28 12:24:21

标签: java arrays constructor

/* Standalone java class file AbcDef.java */
    public class AbcDef {
        public void AbcDef(Abc[] abc) {
            something ???;
        }
    }

我的问题1 。我不知道如何处理上面的初始化)

/* 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])....

我的问题2 。我不明白如何初始化并为数组赋值) 任何专业知识都可以指出我完成这一点。谢谢!

2 个答案:

答案 0 :(得分:1)

问题1: 这取决于你想在构造函数中做什么。使用构造函数,您将在使用之前准备对象。知道你可以:

  • 将它空白(没有任何问题,它会起作用,但我想你想用你的abc参数做些什么。

  • 使用您的参数制作内容。您可以初始化一个类变量,例如:

     public class AbcDef {
        Abc[] arrayABC
        public void AbcDef(Abc[] abc){
            arrayABC=abc; // initialize class variable arrayABC with abc parameter.
     }
    

    }

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

问题2

声明数组时,必须考虑固定的数组长度,因此应在创建时设置它。这可以这样做:

 AbcDef[] tAbcDef = new AbcDef[9];

所以你说我声明的tabcdef数组是一个长度等于9的AbcDef数组。

创建后,您可以通过

填写它
tAbcDef[0]= whatever;
...

希望有所帮助

答案 1 :(得分:0)

 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数组:

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 ) );

定义数组长度的另一种方法是提供所有元素:

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