Duvida get/objecto

5 respostas
Shponja

Tenho este objecto:

FactorMultiplicativo resultadoParcial = new FactorMultiplicativo("nota parcial", teste1, 0.5F);
package ultimopg;

public class FactorMultiplicativo extends Avaliação{
	
	private Avaliação componente;
	private float factor;
	
	public FactorMultiplicativo (String d, Avaliação a, float factor){
		super();
		this.descrição=d;
		this.componente=a;
		this.factor=factor;
	}
	
	public int getNota(){
		return  ??????????????
	}

}
A certa altura quero fazer
resultadoParcial.list("-> ");
método list da classe pai:
public void list (String prefix){
		System.out.println(prefix + descrição + " - "+this.getNota());
		
	}

Como chego ao valor que eu quero ver em this.getNota() ??
O problema é que o objecto resultadoParcial tem a variavel componente do tipo Avaliação, que por sua vez contem a variavel descriçao e a variavel nota a que eu quero aceder, mas como é privada não consigo nem com gets. =S
Será que alguém me pode ajudar e explicar o problema?

5 Respostas

berg.pb

CAra, é estranho

Tem certeza que o métodos são publics?
Pq, pelo paradigma OO, mesmo os atributos sendo privados, se os metodos que os acessam forem públicos, eles podem ser acessados e/ou modificados, dependendo do caso.

Posta mais detalhes, então…

Abraços

Shponja

A dúvida resumidamente é:

eu queria referirme a uma variavel que se encontra dentro de outra variavel que se encontra dentro de um objecto mas não estou a conseguir.
Como faço isso?

berg.pb

Cara,
é meio insano essa coisa aí!!!

Veja só: se a cada NEW vc cria um objeto novo, dentro dele uma variável e dentro desta última, um outro atributo, toda vez q vc criar um novo objeto primário, terá que refazer a referência.

Veja se não é melhor pra vc utilizar um singleton.

Ou… coloca COM DETALHES o codigo que tu ta utilizando.

abraços

Shponja

Vou meter as classes todas então.

package ultimopg;

public class Testar {
	public static void main(String args[]){
		
		Avaliação teste1 = new Simples("1º Teste", 8);
		FactorMultiplicativo resultadoParcial = new FactorMultiplicativo("nota parcial", teste1, 0.5F);
		System.out.println( teste1 );
		System.out.println( "-----" );
		resultadoParcial.list("-> ");
		
	}

}
package ultimopg;

public class Simples extends Avaliação{

	private int nota;
	
	public Simples(String d, int nota){
		super();
		this.nota=nota;
		this.descrição=d;		
	}
	
	public int getNota(){
		return nota;
	}	
}
package ultimopg;

public abstract class Avaliação {
	
	protected String descrição;
	
	public Avaliação(){		
	}
	
	public abstract int getNota();
	
	public String toString(){
		return descrição + " - "+ this.getNota();
	}
	
	public void list (String prefix){
		System.out.println(prefix + descrição + " - "+this.getNota());
		
	}

}
package ultimopg;

public class FactorMultiplicativo extends Avaliação{
	
	private Avaliação componente;
	private float factor;
	
	public FactorMultiplicativo (String d, Avaliação a, float factor){
		super();
		this.descrição=d;
		this.componente=a;
		this.factor=factor;
	}
	
	public int getNota(){
		return //quero retornar o valor de nota multiplicado por factor//
	}

}
berg.pb

Bem, não sei entendi bem…

  1. vc quer pegar o valor da Nota…
  2. só q vc quer pegar esse valor dentro de FatorMultiplicativo que extende Avaliação.

Porém., quem tem a variavel Nota é a classe simples…

Então, se for isso, dentro da classe FMultiplicativo, instancie um objeto simples e pega a nota…

É isso o que vc quer fazer?

Criado 20 de abril de 2009
Ultima resposta 21 de abr. de 2009
Respostas 5
Participantes 2