Boa Noite, estou com dificuldades de colocar um objeto do tipo Fotos num array quando dou um print no array da a seguinte mng … segue abaixo o codigo Tipo: Fotos@addbf1 sendo q deveria printar para mim P 25 segue o codigo abaixo… obrigado.
publicclassFotos{chartipo;intqtd;voidadiciona(chartype,intquant){this.tipo=type;this.qtd=quant;}voidmostrar(){System.out.println("Tipo: "+this.tipo+" Quantidade: "+this.qtd);}}publicclassArray{Fotos[]fotos;voidadicionar(Fotosf){for(intx=0;x<this.fotos.length;x++){this.fotos[x]=f;}}voidmostrar(){for(intx=0;x<this.fotos.length;x++){if(this.fotos[x]==null){System.out.println("Nao tem nada no array");}else{System.out.println("Tipo: "+this.fotos[x]);}break;}}}publicclassTestar{publicstaticvoidmain(String[]args){Arraya1=newArray();a1.fotos=newFotos[100];Fotosf1=newFotos();f1.adiciona('P',25);a1.adicionar(f1);a1.mostrar();}}
Boa Noite, estou com dificuldades de colocar um objeto do tipo Fotos num array quando dou um print no array da a seguinte mng … segue abaixo o codigo Tipo: Fotos@addbf1 sendo q deveria printar para mim P 25 segue o codigo abaixo… obrigado.
publicclassFotos{chartipo;intqtd;voidadiciona(chartype,intquant){this.tipo=type;this.qtd=quant;}voidmostrar(){System.out.println("Tipo: "+this.tipo+" Quantidade: "+this.qtd);}}publicclassArray{Fotos[]fotos;voidadicionar(Fotosf){for(intx=0;x<this.fotos.length;x++){this.fotos[x]=f;}}voidmostrar(){for(intx=0;x<this.fotos.length;x++){if(this.fotos[x]==null){System.out.println("Nao tem nada no array");}else{//Você esqueceu de chamar o método mostrar do seu objeto foto.System.out.println("Tipo: "+this.fotos[x].mostrar());}break;}}}publicclassTestar{publicstaticvoidmain(String[]args){Arraya1=newArray();a1.fotos=newFotos[100];Fotosf1=newFotos();f1.adiciona('P',25);a1.adicionar(f1);a1.mostrar();}}
O
ozzyblank
Tentei fazer como voce falou mas continua pegando somente o numero da memoria segue o codigo novo nao entendo pq nao esta pegando certo
publicclassFotos{Stringtamanho;intquantidade;voidadiciona(Stringtam,intqtd){this.tamanho=tam;this.quantidade=qtd;}publicStringtoString(){return"Tipo: "+this.tamanho+" Quantidade: "+this.quantidade;}}publicclassArray{Fotos[]fotos;voidadicionaNaArray(Fotosf){for(inti=0;i<this.fotos.length;i++){this.fotos[i]=f;}}voidverificar(){for(intx=0;x<this.fotos.length;){if(this.fotos[x]==null){System.out.println("Nao possui fotos");}else{System.out.println(toString());}break;}}}publicclassTeste{publicstaticvoidmain(String[]args){Fotosf1=newFotos();Arraya1=newArray();a1.fotos=newFotos[500];f1.adiciona("G",5);a1.adicionaNaArray(f1);a1.verificar();}}
agradeço quem me ajudar… Obrigado.
robertoMoraes
voidverificar(){for(intx=0;x<this.fotos.length;){if(this.fotos[x]==null){System.out.println("Nao possui fotos");}else{System.out.println(fotos[x]);//tentedessaforma}break;}}
O
ozzyblank
Boa Noite robertoMoraes eu fiz como vc falou e printou, mas se eu coloco no codigo mais um objeto no caso um f2 e faço um a1.adicionaNaArray(f2); ele nao é printado, é printado somente o f1 o que pode estar de errado no meu metodo adiciona na classe Array ? no caso ele nao esta printando a array e somente o objeto f1.
pois esta criado um for para ir incrementando o x certo ???
Boa Noite novamente, eu ja tinha feito assim como voce colocou com esse if igual e continua nao funcionando… sera que pode ser algum pau no eclipse ?
muito estranho segue o codigo com a modificação
publicclassArray{Fotos[]fotos;voidadicionaNaArray(Fotosf){for(intx=0;x<this.fotos.length;x++){if(fotos[x]==null){this.fotos[x]=f;break;}}}voidverificar(){for(intx=0;x<this.fotos.length;){if(this.fotos[x]==null){System.out.println("Nao possui fotos");}else{System.out.println(this.fotos[x]);}break;}}}publicclassTeste{publicstaticvoidmain(String[]args){Fotosf1=newFotos();Fotosf2=newFotos();Fotosf3=newFotos();Fotosf4=newFotos();Arraya1=newArray();a1.fotos=newFotos[100];f1.adiciona("G",12);f2.adiciona("G",24);f3.adiciona("P",24);f4.adiciona("P",12);a1.adicionaNaArray(f1);a1.adicionaNaArray(f2);a1.adicionaNaArray(f3);a1.adicionaNaArray(f4);a1.verificar();}}
segue o resultado no console
Tipo: G Quantidade: 12
Obrigado novamente robertoMoraes
Kanin_Dragon
Jovem,
sempre vai exibir o primeiro registro pois o metodo verificar está com o break e sempre vai sair na primeira iteração, retire
o break que todos os objetos serão exibidos.
abs,
O
ozzyblank
Boa Tarde Kanin Dragon tirei o break dai fica infinitamente printando Tipo G quantidade 12 em nenhum momento ele printa os outros objetos que deveriam estar no array, mesmo assim obrigado pela ajuda, e quem puder me ajudar a resolver este problema agradeço…
robertoMoraes
voidverificar(){for(intx=0;x<this.fotos.length;x++){//vocêesqueceudox++porissuelenãosaiadaprimeiraposiçãoif(this.fotos[x]==null){System.out.println("Nao possui fotos");}else{System.out.println(this.fotos[x]);}}}
O
ozzyblank
Boa Tarde Realmente coloquei o x++ e funcionou, Muito Obrigado a todos que responderam.
O
ozzyblank
Gostaria de utilizar o mesmo topico pra tentar resolver um metodo, ali em cima é um codigo que adiciona um tipo de foto se é P,M ou G e a quantidade de fotos ou seja G … 10 M … 5 e P … 2
ta eu preciso criar um metodo que verifique nessa array que tenha esses dados tipo e quantidade se for igual some as quantidades e salve em uma nova variavel, um exemplo seria a array tem 4 posicoes na posicao 0 tem um g 10 na posicao 1 tem um g 12 na posicao 2 tem um P 45 e na posicao 3 tem um p 7, ou seja nessa nova varial salve o resultado da soma dos tipos, que uma nova variavel receba P 52 e outra variavel receba G 22 e jogue isso na tela, eu criei um metodo que verifica se eh igual o tipo e some as quantidades so que ele soma tudo, eu preciso de algo se for g vai no variavel quantidade se for m variavel quantidade2 se for p variavel quantidade3.
nao sei se alguem pode me dar uma luz referente a isso.
eu pensava sera que nao seria necessario criar um array onde recebesse tres posições e quando achava uma variavel tamanho igual ele colocase a variavel quantidade para a array?