Construtores

…em vários lugares utilizo da acentuação e não tem nenhum problema

Como assim?

Não entendi.

Uma classe que é filha de duas? Isso é herança multipla?
Pensei que Java não aceitasse herança multipla.

Por favor agora quero uma explicação de como exatamente isso acontece.

Nao herda de duas…

A classe AjudanteParaAdaptaçãoContendoSimNao herda da classe AjudanteParaAdaptaçãoContendoSeletorDeElementos e esta classe herda de AjudanteParaAdaptação. Compreendeu?

Como assim?

Não entendi.

Uma classe que é filha de duas? Isso é herança multipla?
Pensei que Java não aceitasse herança multipla.

Por favor agora quero uma explicação de como exatamente isso acontece.[/quote]

Java não aceita Herança Multípla

leia o que postei acima neohacker

Nao herda de duas…

A classe AjudanteParaAdaptaçãoContendoSimNao herda da classe AjudanteParaAdaptaçãoContendoSeletorDeElementos e esta classe herda de AjudanteParaAdaptação. Compreendeu?

Alguém pode me dar alguma idéia do que pode estar acontecendo?

Olá menina, creio que a sua pergunta esta um pouco confusa pro pessoal entender. Eu mesmo estou tentando mas esta dificil. Você tem uma classe A que herda de B que herda de C, correto. Até ai eu entendi.

Agora você diz que funciona mas mesmo assim da o erro no log. é isso?

Esse erro do log esta meio confuso também, pois não consegui encontrar nenhuma mensagem familiar. Você consegue acompanhar a execução e postar aqui pra gente a linha exata de onde ele da o erro assim como o erro que ele mostra nessa linha?

Obrigado.

Ricardo Cabral

Ele deixa compilar normalmente, mas aparece esses erros de log, e quando aparece a instância da compilação não deixa executar nada no código!

nada no programa…me desculpe!

  • nao deixa executar nada no código(errado)

Quando você tenta executar o código, ele provavelmente da um erro dizendo o por que não foi executado.

Você tem esse erro?

Seria interessante se vc postasse aqui o erro que aparece no console do eclipse quando vc tenta executar. Mas os erros daquele arquivo parecem se referir a erros do eclipse e não do seu código .

O problema não está no construtor descobri isso agora !
Obsere o código abaixo:

public class AjudanteParaAdaptacaoSimNao extends AjudanteParaAdaptaçãoContendoSeletorDeElementos {

private static String NAO_ESPECIFICADO = "Não especificado";
private String rotulo;
private String infalterada;
/**
 * Construtor.
 * @param a
 * @param pai
 * @param itens
 */
public AjudanteParaAdaptacaoSimNao(String rotulo, String infalterada, AdaptadorDeInterfaceDoPluginPraxis a, Composite pai) {
	super(a, pai, new String[] {NAO_ESPECIFICADO, "Sim", "Não"});
	this.rotulo = rotulo;
	this.infalterada = infalterada;
}

/* (non-Javadoc)
 * @see br.ufmg.dcc.synergia.praxis.views.adaptadores.ajudantes.AjudanteParaAdaptaçãoContendoSeletorDeElementos#recuperarRótulo()
 */
public String recuperarRótulo() {
	return rotulo;
}

O problema está nesse método public String recuperarRótulo(), aonde se pede para retornar o rótulo que é passado como para esta classe, no entanto esse método é abstrato na classe pai e também é chamado na classe pai.
Observe o código da classe pai desta classe:

ublic abstract class AjudanteParaAdaptaçãoContendoSeletorDeElementos extends AjudanteParaAdaptação {

/**
 * items que aparecerão no compo para ser selecionados.
 * 	 */
private String[] items;
private ComponenteSeletorDeElementos seletor;
/**
 * @param adaptador
 * @param pai
 */
public AjudanteParaAdaptaçãoContendoSeletorDeElementos(AdaptadorDeInterfaceDoPluginPraxis a, Composite pai, String[] itens) {
	super(a, pai);
	this.items = itens;
	TratadorDeAlteraçãoDeCombo t = new TratadorDeAlteraçãoDeCombo(){

		public void seleçãoMudada(final String seleção) {
			adaptador.executar(new ResourceSetModifyOperation(PraxisPlugin.recuperarRecursoTextual(recuperarInformaçãoDaAlteração())){

				protected void execute(IProgressMonitor arg0) throws InvocationTargetException, InterruptedException {
					AjudanteParaAdaptaçãoContendoSeletorDeElementos.this.seleçãoMudada(seleção);
				}
				
				},new NullProgressMonitor());
		}
		
	};

	seletor = FábricaDeInterfacesDeEntradaDeDados.criaComponenteSeletorDeElementos(t, this, pai, recuperarRótulo(), items);
}

public abstract String recuperarRótulo();

E ele deixa executar o programa, não aparece nenhum erro no console!

E eu crio um objeto que chama esta classe em outra classe, da seguinte maneira:

adicionarAjudante(new AjudanteParaAdaptacaoSimNao("ana","ana",this,conteudoDaAba1));

ALGUÉMMMMM??? ALGUMA IDÉIA???

[quote=menina_mg] O problema não está no construtor descobri isso agora !
Obsere o código abaixo:

public class AjudanteParaAdaptacaoSimNao extends AjudanteParaAdaptaçãoContendoSeletorDeElementos {

private static String NAO_ESPECIFICADO = "Não especificado";
private String rotulo;
private String infalterada;
/**
 * Construtor.
 * @param a
 * @param pai
 * @param itens
 */
public AjudanteParaAdaptacaoSimNao(String rotulo, String infalterada, AdaptadorDeInterfaceDoPluginPraxis a, Composite pai) {
	super(a, pai, new String[] {NAO_ESPECIFICADO, "Sim", "Não"});
	this.rotulo = rotulo;
	this.infalterada = infalterada;
}

/* (non-Javadoc)
 * @see br.ufmg.dcc.synergia.praxis.views.adaptadores.ajudantes.AjudanteParaAdaptaçãoContendoSeletorDeElementos#recuperarRótulo()
 */
public String recuperarRótulo() {
	return rotulo;
}

O problema está nesse método public String recuperarRótulo(), aonde se pede para retornar o rótulo que é passado como para esta classe, no entanto esse método é abstrato na classe pai e também é chamado na classe pai.
Observe o código da classe pai desta classe:

ublic abstract class AjudanteParaAdaptaçãoContendoSeletorDeElementos extends AjudanteParaAdaptação {

/**
 * items que aparecerão no compo para ser selecionados.
 * 	 */
private String[] items;
private ComponenteSeletorDeElementos seletor;
/**
 * @param adaptador
 * @param pai
 */
public AjudanteParaAdaptaçãoContendoSeletorDeElementos(AdaptadorDeInterfaceDoPluginPraxis a, Composite pai, String[] itens) {
	super(a, pai);
	this.items = itens;
	TratadorDeAlteraçãoDeCombo t = new TratadorDeAlteraçãoDeCombo(){

		public void seleçãoMudada(final String seleção) {
			adaptador.executar(new ResourceSetModifyOperation(PraxisPlugin.recuperarRecursoTextual(recuperarInformaçãoDaAlteração())){

				protected void execute(IProgressMonitor arg0) throws InvocationTargetException, InterruptedException {
					AjudanteParaAdaptaçãoContendoSeletorDeElementos.this.seleçãoMudada(seleção);
				}
				
				},new NullProgressMonitor());
		}
		
	};

	seletor = FábricaDeInterfacesDeEntradaDeDados.criaComponenteSeletorDeElementos(t, this, pai, recuperarRótulo(), items);
}

public abstract String recuperarRótulo();[/quote]

Como você descobriu que o problema está neste método recuperarRótulo?
No caso acho que te ajudaria bastante usar o Debug do Eclipse para acompanhar a execução passo a passo.
Os nomes das suas classes estão um pouquinho extensos, não? Colocar um nome como AjudanteParaAdaptaçãoContendoSeletorDeElementos deixa meio confuso pra ler…

Olá,

Dificilmente alguém irá responder a sua dúvida por alguns motivos:

  • Quando colocar código no forum faça isso utilizando a tag Code, pois isso facilita a leitura dos códigos;
  • Os nomes que você usou, são muito longos e confusos… vai ser difícil alguém perder um tempo razoável só pra tentar entender as classes que você criou;
  • Você não foi muito clara ao descrever o problema;
  • Você colocou trechos que não demonstram muito bem o fluxo das coisas acontecendo, o que dificulta o entendimento;
  • até o momento você não disponibilizou sequer o erro que está ocorrendo.

Não fique brava… são só algumas dicas que podem facilitar na hora de alguém ajudar… resolva os pontos que lhe descrevi e com certeza alguém irá achar a solução do seu problema.

[quote=J2Alex]Olá,

Dificilmente alguém irá responder a sua dúvida por alguns motivos:

  • Quando colocar código no forum faça isso utilizando a tag Code, pois isso facilita a leitura dos códigos;
  • Os nomes que você usou, são muito longos e confusos… vai ser difícil alguém perder um tempo razoável só pra tentar entender as classes que você criou;
  • Você não foi muito clara ao descrever o problema;
  • Você colocou trechos que não demonstram muito bem o fluxo das coisas acontecendo, o que dificulta o entendimento;
  • até o momento você não disponibilizou sequer o erro que está ocorrendo.

Não fique brava… são só algumas dicas que podem facilitar na hora de alguém ajudar… resolva os pontos que lhe descrevi e com certeza alguém irá achar a solução do seu problema.[/quote]

DISSE TUDO!

quer ajuda??? nós ajude a entender o seu problema!

desculpa… mas realmente facilitará mto seguindo as dicas do amigo acima!

Realmente não fui muito clara com a descrição dos meus erros, desculpa e obrigada pela atenção de todos vocês vou tentar ser o mais clara possível para cada um de vocês!

1 - Primeiramente a escolha dos nomes nao é minha, no entanto ficarão extensos realmente.

2- Quanto ao erro que está acontecendo: o erro não acontece na compilação, ou seja o erro nao aparece no console, mas quando vou executar o programa ele abre mas nao roda ok?

3- Eu apresentei 3 classes a, b e c…c herda de b e b herda de a. Inicialmente pensei que o problema estava no construtor, mas depois de mudar o método
public String recuperarRótulo() {
return rotulo;
}

para

public String recuperarRótulo() {
return “uma string qualquer”;
}

o programa roda normalmente!

Este método é da classe c e é abstrata na classe b.

E o que eu queria era passar este rótulo como parametro para a classe c através de uma outra classe e depois recuperá-lo mas isso nao está sendo possível ok?

Bem tentei ser clara, senão for por favor me ajudem a esclarecer