Classe filho não utiliza classe pai

9 respostas
R
import java.io.*;
public class Conjunto1l{
  Conjunto1 [] conjunto1;  
  static final int TOTAL = 5;
  int itens =0;
	
	public Conjunto1(){
		conjunto1 = new Conjunto1[TOTAL];
		adicionar("Videogame","Wii","PS3","Xbox");
		adicionar("Celular","Motorola","LG","Sony");
		//conjuntos		
		
	}
	
	public void adicionar(String conjunto,String nome1,String nome2, String nome3 ){
		
		ConjuntoTotal conjtotal = new ConjuntoTotal(conjunto, nome1,nome2, nome3);
		if (itens >= TOTAL ){
			System.out.println("Não ha espaco para adicionar conjuntos");
			}
			else	
			conjunto1[itens] = conjtotal;  //ERRO
		    itens = itens +1;
		}
		
/*	public Iterator criarIterador(){
		return (Iterator)Conjunto1(conjunto1);
		
	} */
}
public class ConjuntoTotal {
ConjuntoTotal conjtotal;
public  String conjunto;
public String nome1;
public String nome2;
public String nome3;
	
	public ConjuntoTotal(String conjunto,String nome1,String nome2, String nome3){
		this.conjunto = conjunto;
		this.nome1 = nome1;
		this.nome2 = nome2;
		this.nome3 = nome3;
		
	}
	public void setConjunto(String conjunto){
		this.conjunto = conjunto;
	}
	public void setNome1(String nome1){
		this.nome1 = nome1;
	}
	public void setNome2(String nome2){
		this.nome2 = nome2;
	}
	public void setNome3(String nome3){
		this.nome3 = nome3;
	}
	public String getConjunto(){
		return conjunto;
	}
	public String getNome1(){
		return nome1;
	}
	public String getNome2(){
		return nome2;
	}
	public String getNome3(){
		return nome3;
	}
}

Gente, estou tentando fazer com que minha classe ConjuntoTotal adicione dados em Conjunto1. Eu estou tentando fazer com que duas classe com estruturas diferentes (arraylist e array) ‘trabalhem’ em conjunto sem que nenhuma delas se modifique. Eu somente copiei aqui o Conjunto1 (array) e ConjuntoTotal para tentar entender o porquê a parte que está comentada com //ERRO não funciona. O erro é o seguinte: não converte do tipo ConjuntoTotal para Conjunto1. Alguém consegue me ajudar?

9 Respostas

W
  1. Considera isso:
Conjunto1 [] conjunto1;
  1. Isso:
ConjuntoTotal conjtotal = new ConjuntoTotal(conjunto, nome1,nome2, nome3);
  1. Agora isso:
public class ConjuntoTotal {
  1. Por fim, isso:

Conclusão:

Você diz que conjunto1 é do tipo array de Conjunto1 e quer armazenar o objeto conjtotal do tipo ConjuntoTotal num array do tipo Conjunto1?

Não dá certo mesmo se você não estabeleceu herança para ConjuntoTotal de Conjunto1.

wiliamps

R

Não sei se é a melhor forma mais se você criar uma classe de conjunto1 e na classe de conjunto total você fizer uma List de conjunto1 acredito que ficaria mais simples!!!

public classe Conjunto1{

private String nome1;

contrutor

get e set
etc…

}

////////

public classe ConjuntoTotal{

private Listconjuntos;

conjuntos.add(new Conjunto1(“nome1”,“nome2”,“nome3”));

}
////////

R

wiliamps:
1) Considera isso:

Conjunto1 [] conjunto1;
  1. Isso:
ConjuntoTotal conjtotal = new ConjuntoTotal(conjunto, nome1,nome2, nome3);
  1. Agora isso:
public class ConjuntoTotal {
  1. Por fim, isso:

Conclusão:

Você diz que conjunto1 é do tipo array de Conjunto1 e quer armazenar o objeto conjtotal do tipo ConjuntoTotal num array do tipo Conjunto1?

Não dá certo mesmo se você não estabeleceu herança para ConjuntoTotal de Conjunto1.

wiliamps


wiliamps, eu já tentei Conjunto1 extends ConjuntoTotal e mesmo assim não havia funcionado. O problema é que tenho que fazer uma classe que utilize um array e outra classe que utilize um arraylist. Essas classes tem que adicionar da mesma forma em suas respectivas classes utilizando o ConjuntoTotal.

R

Ronaldo Santos:
Não sei se é a melhor forma mais se você criar uma classe de conjunto1 e na classe de conjunto total você fizer uma List de conjunto1 acredito que ficaria mais simples!!!

public classe Conjunto1{

private String nome1;

contrutor

get e set
etc…

}

////////

public classe ConjuntoTotal{

private Listconjuntos;

conjuntos.add(new Conjunto1(“nome1”,“nome2”,“nome3”));

}
////////

Ronaldo, assim que chegar em casa tentarei ajustar meu código ao seu. Obrigado!

drsmachado

Não entendi bulhufas do que você quer fazer, mas sei que está errado.
Classe filha não usa a classe pai? Mas cadê a indicação da relação de herança entre as classes? Cadê o extends?
Sem extends você só pode ter uma relação de agregação ou composição ou realização (implements). Logo, precisará ou instanciar um objeto da outra classe e através dele invocar seus métodos ou sobrescrever os métodos da interface/classe abstrata (o que não é teu caso).
Logo, você está cometendo um erro primário e grotesco.

R

drsmachado:
Não entendi bulhufas do que você quer fazer, mas sei que está errado.
Classe filha não usa a classe pai? Mas cadê a indicação da relação de herança entre as classes? Cadê o extends?
Sem extends você só pode ter uma relação de agregação ou composição ou realização (implements). Logo, precisará ou instanciar um objeto da outra classe e através dele invocar seus métodos ou sobrescrever os métodos da interface/classe abstrata (o que não é teu caso).
Logo, você está cometendo um erro primário e grotesco.

drsmachado, eu entendo que para que uma classe filha possa utilizar metodos da classe pai é necessário que exista um extends. Se você ler meu post como resposta a um outro usuário, verá que eu citei isso. Eu utilizei o extends, porém não funcionou da mesma forma. Antes de postar aqui eu havia tentado outras alternativas, sem sucesso.

drsmachado

O que acontece é que você dá a entender que não sabe nem o que quer fazer, pelo título do tópico entende-se que você está tendo dificuldades em uma coisa, mas, ao ler o que você escreve o os códigos, isso não faz nenhum sentido.
Uma das orientações mais utilizadas em qualquer lugar é o de ser claro quanto ao que se quer e, ao menos para mim, você não foi nem de longe.

R

A questão é que eu não tenho experiência em Java como muitos aqui devem ter. Na verdade, comecei faz pouco tempo e atualmente não preciso de usuários mimimi.
Se você não está afim de ajudar, retire-se do tópico. =)
Simples.

W

Conforme falamos, o ConjuntoTotal precisa herdar Conjunto1.

Leia novamente o comentário que tinha feito, pois acho que você interpretou errado.

Veja do que estamos falando:

public class Teste {

	public static void main(String[] args) {

		Conjunto1 conj1 = new Conjunto1();
		
	}

}

class Conjunto1 {

	Conjunto1 [] conjunto1;  
	static final int TOTAL = 5;
	int itens =0;

	public Conjunto1(){
		conjunto1 = new Conjunto1[TOTAL];
		adicionar("Videogame","Wii","PS3","Xbox");
		adicionar("Celular","Motorola","LG","Sony");
		//conjuntos		

	}

	public void adicionar(String conjunto,String nome1,String nome2, String nome3 ){

		ConjuntoTotal conjtotal = new ConjuntoTotal(conjunto, nome1,nome2, nome3);

		if (itens >= TOTAL ){
			System.out.println("Não ha espaco para adicionar conjuntos");
		} else {	
			conjunto1[itens] = conjtotal;  //ERRO
			itens = itens +1;
		}
	}		

}

class ConjuntoTotal extends Conjunto1 {

	ConjuntoTotal conjtotal;
	public  String conjunto;
	public String nome1;
	public String nome2;
	public String nome3;

	public ConjuntoTotal(String conjunto,String nome1,String nome2, String nome3){
		this.conjunto = conjunto;
		this.nome1 = nome1;
		this.nome2 = nome2;
		this.nome3 = nome3;

	}
	public void setConjunto(String conjunto){
		this.conjunto = conjunto;
	}
	public void setNome1(String nome1){
		this.nome1 = nome1;
	}
	public void setNome2(String nome2){
		this.nome2 = nome2;
	}
	public void setNome3(String nome3){
		this.nome3 = nome3;
	}
	public String getConjunto(){
		return conjunto;
	}
	public String getNome1(){
		return nome1;
	}
	public String getNome2(){
		return nome2;
	}
	public String getNome3(){
		return nome3;
	}
}

Tem outro problema, como dentro do construtor de Conjunto1 você chama o construtor do Conjunto1, isso desencadeia um looping infinito.

wiliamps

Criado 5 de novembro de 2012
Ultima resposta 6 de nov. de 2012
Respostas 9
Participantes 4