Java构造函数未正确初始化

时间:2011-12-02 11:13:08

标签: java class

我有一个包含这2个构造函数的类:

public Conferencia(String nomeConferencia, 
                   String localizacaoConferencia, 
                   int anoConferencia, 
                   int mesConferencia, 
                   int diaConferencia) 
{
    this.nomeConferencia = nomeConferencia;
    this.localizacaoConferencia = localizacaoConferencia;
    this.anoConferencia = anoConferencia;
    this.mesConferencia = mesConferencia;
    this.diaConferencia = diaConferencia;
    this.membroComiteOrganizacao = new MembroComiteOrganizacao[100];
    this.membroComitePrograma = new MembroComitePrograma[100];
    this.idConferencia = contadorConferencias++;
}


public Conferencia(String nomeConferencia, 
                   String localizacaoConferencia, 
                   int anoConferencia, 
                   int mesConferencia, 
                   int diaConferencia, 
                   MembroComiteOrganizacao[] membroComiteOrganizacao) 
{
    this.nomeConferencia = nomeConferencia;
    this.localizacaoConferencia = localizacaoConferencia;
    this.anoConferencia = anoConferencia;
    this.mesConferencia = mesConferencia;
    this.diaConferencia = diaConferencia;
    this.membroComiteOrganizacao = membroComiteOrganizacao;
    this.idConferencia = contadorConferencias++;
}

MembroComiteOrganizacao构造函数是这样的:

public MembroComiteOrganizacao(int papelMembro, 
                               String memberName, 
                               String memberEmail, 
                               String memberInstituicao) 
{
    super(memberName, memberEmail, memberInstituicao);
    this.papelMembro = papelMembro;

}

main中,如果我创建这样的内容,则不必插入始终数据:

static Conferencia[] conferencias = {new Conferencia("Congresso 1","Abrantes",2012,1,2)};

一切都好。

但是现在我想插入与MembroComiteOrganização相同的构造函数数据。我做完了:

static Conferencia[] conferencias = {new Conferencia("Congresso 1","Abrantes",2012,1,2,new MembroComiteOrganizacao(1,"Regina Kareem Obrien","imc2oep-m.4oa@0o2z09s.com","Casa da Criança de Tires"))};

但它给了我错误。

有人可以解释一下我做错了吗?

更新

完成

static Conferencia[] conferencias = {new Conferencia("Congresso 1","Abrantes",2012,1,2,new MembroComiteOrganizacao[1](1,"Regina Kareem Obrien","imc2oep-m.4oa@0o2z09s.com","Casa da Criança de Tires"))};

现在的错误是     ')' expected

3 个答案:

答案 0 :(得分:2)

如果那是你在Conferencia课程中唯一的构造函数,那么即使你剪掉的第一个代码也会失败,因为MembroComiteOrganizacao参数不是可选的,你没有将值传递给它。

另一个失败,因为该参数是一个数组,并且您传递的是一个对象。

如果您将最后一个参数定义为MembroComiteOrganizacao... membroComiteOrganizacao而不是MembroComiteOrganizacao[] membroComiteOrganizacao(即您使用...而不是[]),则两个代码段都应该有效。

答案 1 :(得分:1)

在索引0处创建static Conferencia[] conferencias时,c'tor未关闭。

答案 2 :(得分:0)

您的类型不匹配,您的Conferencia构造函数采用MembroComiteOrganizacao数组,但您给它一个实例,而不是数组。