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?
- Considera isso:
Conjunto1 [] conjunto1;
- Isso:
ConjuntoTotal conjtotal = new ConjuntoTotal(conjunto, nome1,nome2, nome3);
- Agora isso:
public class ConjuntoTotal {
- 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
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”));
}
////////
[quote=wiliamps]1) Considera isso:
Conjunto1 [] conjunto1;
- Isso:
ConjuntoTotal conjtotal = new ConjuntoTotal(conjunto, nome1,nome2, nome3);
- Agora isso:
public class ConjuntoTotal {
- 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
[/quote]
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.
[quote=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”));
}
////////
[/quote]
Ronaldo, assim que chegar em casa tentarei ajustar meu código ao seu. Obrigado!
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.
[quote=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.[/quote]
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.
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.
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.
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