Help! Classes Genéricas

Tenho um vetor sendo que cada elemento possui 2 atributos
Atributo 2: x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
Atributo 2: y0 y1 y2 y3 y4 y5 y6 y7 y8 y9
Como que faço uma classe genérica para cada elemento, ou seja, cada atributo pode ser de qualquer
classe? E com seria uma classe para esse arranjo, com métodos para inserir e remover?

E sobre tratamento de exceção ?

valew!!!

Cara eu nao entendi com assim Atributo 2?
Poderia explicar melhor ?

Cara, se vc quer o que estou pensando, pesquise por Proxy.

[quote=71C4700]Cara eu nao entendi com assim Atributo 2?
Poderia explicar melhor ?
[/quote]

Tipo assim: aquele questão de usar a classe de forma generica.
exemplo:

class Celula
{
public Celula atributo1;
public Celula atributo1;
}

Entendeu???

[quote=Mr. Smith][quote=71C4700]Cara eu nao entendi com assim Atributo 2?
Poderia explicar melhor ?
[/quote]

Tipo assim: aquele questão de usar a classe de forma generica.
exemplo:

class Celula
{
public Celula atributo1;
public Celula atributo1;
}

Entendeu???[/quote]

Não, não entendi.

Mas acho que o que você quer é isso:class Celula<A, B> { private A atributo1; private B atributo2; }É isso?

[quote=victorwss][quote=Mr. Smith][quote=71C4700]Cara eu nao entendi com assim Atributo 2?
Poderia explicar melhor ?
[/quote]

Tipo assim: aquele questão de usar a classe de forma generica.
exemplo:

class Celula
{
public Celula atributo1;
public Celula atributo1;
}

Entendeu???[/quote]

Não, não entendi.

Mas acho que o que você quer é isso:class Celula<A, B> { private A atributo1; private B atributo2; }É isso?[/quote]

Correto Vitor!!!
é isto mesmo!!!
Aqui neste forum tem como conversa on line???
Quero tirar umas dúvidas!!
valew!!!

Valew!!!

Victor!! Boa tarde!!
tem este código

  1. public abstract class Conta {
  2. public float dinheiro;  
    
  3.  public Conta() {  
    
  4.     this.dinheiro = 0;  
    
  5. }  
    
  6. public void inserirDinheiro(float dinheiro){  
    
  7.      this.dinheiro+=dinheiro;  
    
  8.  }  
    
  9.  public void retirarDinheiro(float dinheiro){  
    
  10.      this.dinheiro-=dinheiro;  
    
  11.  }  
    
  12.  public float mostrarDinheiro(){  
    
  13.      return this.dinheiro;  
    
  14.  }  
    
  15.  public abstract void atualizarConta();  
    
  16. }
  17. public class ContaCorrente extends Conta {
  18. private float taxaJuros;  
    
  19. public ContaCorrente(float taxaManutencao) {  
    
  20.     super();  
    
  21.     this.taxaJuros=taxaManutencao;  
    
  22. }  
    
  23. @Override  
    
  24. public void atualizarConta() {  
    
  25.     this.inserirDinheiro(this.mostrarDinheiro()*taxaJuros);  
    
  26. }  
    
  27. }
  28. public class ContaPoupanca extends Conta {
  29. private float taxaManutencao;  
    
  30. public ContaPoupanca(float taxaManutencao) {  
    
  31.     super();  
    
  32.     this.taxaManutencao=taxaManutencao;  
    
  33. }  
    
  34. @Override  
    
  35. public void atualizarConta() {  
    
  36.     this.retirarDinheiro(taxaManutencao);  
    
  37. }  
    
  38. }
  39. public class Banco {
  40. private List<Conta> listaContas;  
    
  41. public Banco() {  
    
  42.     listaContas=new LinkedList<Conta>();  
    
  43. }  
    
  44. public void adicionarContaPoupanca(float depositoInicial){  
    
  45.     ContaPoupanca poupanca=new ContaPoupanca((float)0.65);  
    
  46.     poupanca.inserirDinheiro(depositoInicial);  
    
  47.     listaContas.add(poupanca);  
    
  48. }  
    
  49. public void adicionarContaCorrente(float depositoInicial){  
    
  50.     ContaCorrente poupanca=new ContaCorrente((float)15);  
    
  51.     poupanca.inserirDinheiro(depositoInicial);  
    
  52.     listaContas.add(poupanca);  
    
  53. }  
    
  54. public String imprimirExtratoTodasContas(){  
    
  55.     StringBuilder extratos=new StringBuilder();  
    
  56.     for(Conta conta: listaContas){  
    
  57.         extratos.append(conta.getClass().getName()+"\n");  
    
  58.         extratos.append(conta.mostrarDinheiro()+"\n");  
    
  59.     }  
    
  60.     return extratos.toString();  
    
  61. }  
    
  62. public void atualizarContas(){  
    
  63.     for(Conta conta: listaContas){  
    
  64.         conta.atualizarConta();  
    
  65.     }  
    
  66. }  
    
  67. }
  68. public class BancoTeste {
  69. /** 
    
  70.  * @param args 
    
  71.  */  
    
  72. public static void main(String[] args) {  
    
  73.     Banco banco=new Banco();  
    
  74.     banco.adicionarContaCorrente(25);  
    
  75.     banco.adicionarContaPoupanca(32);  
    
  76.     banco.adicionarContaCorrente((float) 55.09);  
    
  77.     banco.adicionarContaPoupanca((float) 567.98);  
    
  78.     System.out.println(banco.imprimirExtratoTodasContas());  
    
  79.     banco.atualizarContas();  
    
  80.     System.out.println("Atualizando contas...");  
    
  81.     System.out.println(banco.imprimirExtratoTodasContas());  
    
  82. }  
    
  83. }

como que faço pra dar a opção para o usuário de escolher qual conta prefere??? se é ou Conta corrente ou Conta Poupança!!

me ajude aí!!! valew

Cara fiz uns ajustes em suas classes para que as mesmas funcionassem… coloquei alguns coments porque fiquei em duvida do que vc quis fazer, vou colocar só as classes em que alterei algo… Segue:

Conta Corrente

public class ContaCorrente extends Conta {
	private float taxaJuros;
	public ContaCorrente(float taxaManutencao) {
	super();
	this.taxaJuros=taxaManutencao;
	}

	public void atualizarConta() {
		this.inserirDinheiro(this.mostrarDinheiro()*taxaJuros);
	}

	public void inserirDinheiro(float taxaManutencao) {
		// Você tem que implementar alguma coisa aqui
		// Perceba que você está chamando com a referência
		// THIS o método inserirDinheiro, enquanto esse mé-
		// todo nem existia em sua classe...
	}

	public float mostrarDinheiro() {
		// Você tem que implementar alguma coisa aqui
		// Perceba que você está chamando com a referência
		// THIS o método mostrarDinheiro, enquanto esse mé-
		// todo nem existia em sua classe...
		// ainda fiz esse método retornar algum valor, pois
		// você está fazendo um cálculo com ele no método
		// atualizarConta()
		float b = 1.0f;
		return b;
	}
}

Conta Poupança

[code]
public class ContaPoupanca extends Conta {

private float taxaManutencao;

public ContaPoupanca(float taxaManutencao) {
	super();
	this.taxaManutencao=taxaManutencao;
}

public void atualizarConta() {
	this.retirarDinheiro(taxaManutencao);
}

public void retirarDinheiro(float taxaManutencao) {
	// Você tem que implementar alguma coisa aqui
	// Perceba que você está chamando com a referência
	// THIS o método retirarDinheiro, enquanto esse mé-
	// todo nem existia em sua classe...
}

}[/code]

Banco

[code]
import java.util.ArrayList;

public class Banco {

// Mudei o tipo de List pra ArrayList
// Lembre-se List é o tipo mais Abstrato
// Logo você deve usar um tipo mais concreto
private ArrayList<Conta> listaContas;

public Banco() {
	this.listaContas = new ArrayList<Conta>();
}

public void adicionarContaPoupanca(float depositoInicial){
	ContaPoupanca poupanca = new ContaPoupanca((float)0.65);
	poupanca.inserirDinheiro(depositoInicial);
	listaContas.add(poupanca);
}

public void adicionarContaCorrente(float depositoInicial){
	// Aqui o nome da variável estava poupanca, alterei pra corrente
	ContaCorrente corrente = new ContaCorrente((float)15);
	corrente.inserirDinheiro(depositoInicial);
	listaContas.add(corrente);
}
public String imprimirExtratoTodasContas(){
	StringBuilder extratos = new StringBuilder();
	for(Conta conta: listaContas){
		extratos.append(conta.getClass().getName()+"\n");
		extratos.append(conta.mostrarDinheiro()+"\n");
	}
	return extratos.toString();
}
public void atualizarContas(){
	for(Conta conta: listaContas){
		conta.atualizarConta();
	}
}

}[/code]

Qualquer coisa… estamos aqui…

falows :wink: