Ola,
Como imprimo a string que tah no 1º construtor?
Se eu fizer = o 2º construtor vai funfar mas tem otra maneira?
publicclassCao{Stringnome,cor;doublepeso;Cao(Stringpassnome){passnome="Aqui sem nome ainda";}Cao(){nome="Erwin";}voidmpeso(doublepasspeso){passpeso=44.2;System.out.println(passpeso);}voidmcor(Stringpasscor){passcor="WHITE";System.out.println(passcor);}publicstaticvoidmain(String[]args){Caoi=newCao();i.mpeso(i.peso);i.mcor(i.cor);System.out.println(i.passnome);//AKI ERROR; como imprimir a string passnome?System.out.println(i.nome);}}
É necessário, vc criar uma váriavel setPassNome e passá-la na main.
Daí, no Sysout, vc chama o método getNome desta variável.
Mesmo que vc crie esta variável sendo estática, ela deve ser inicializada através do contrutor da classe.
hiarlay
Cara eh o seguinte
o java tem padronizações para facilitar nossa vida, o seu passnome seria uma função na qual atribuiria o resultado do construtor a variavel nome
ele entao deixa de ser passnome e passa a ser setNome(String nome); recebendo o nome tendo que ser implementado o mesmo em seu codigo, segue a baixo como ficaria.
publicclassCao{Stringnome,cor;doublepeso;//Crie metodos get e setpublicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetNome(){returnnome;}// e por ai vai, termine de ageitar seu codigo abaixo e crie o resto dos getters e seterrsCao(Stringpassnome){setNome("Aqui sem nome ainda");}Cao(){setNome("Erwin");}voidmpeso(doublepasspeso){setPeso(44.2);System.out.println(getPeso());}voidmcor(Stringpasscor){Stringpasscor="WHITE";System.out.println(passcor);}publicstaticvoidmain(String[]args){Caoi=newCao();i.mpeso(i.peso);i.mcor(i.cor);System.out.println(i.passnome);//AKI ERROR; como imprimir a string passnome? System.out.println(i.nome);}}
hiarlay
e la em baixo voce colocaria i.getPeso(); i.getNome() e por ai vai
rafaelglauber
Oi,
Não ví no seu código essa propriedade (passnome)
System.out.println(i.passnome);//AKI ERROR; como imprimir a string passnome?
revisa primeiro o programa...tou vendo que na verdade passnome é o nome de um argumento de seu primeiro construtor e nada mais, isso não o torna uma propriedade pelo fato de tá nos argumentos do contrutor.
Sugestão:
publicclassCao{Stringnome,cor,passnome;doublepeso;Cao(Stringpassnome){this.passnome=passnome;}Cao(){this("vai imprimir esse agora");nome="Erwin";}voidmpeso(doublepasspeso){passpeso=44.2;System.out.println(passpeso);}voidmcor(Stringpasscor){passcor="WHITE";System.out.println(passcor);}publicstaticvoidmain(String[]args){Caoi=newCao();i.mpeso(i.peso);i.mcor(i.cor);System.out.println(i.passnome);//AKI ERROR; como imprimir a string passnome?System.out.println(i.nome);}}
Repare que chamei o construtor sobrecarregado dentro do outro. :wink:
T
tilopolis
olha quase consegui com o gets e sets mas naun deu…
ae aqui foi o resultado que queria
mas permanece algumas duvidas
reparem nos comentarios
vleeews
publicclassCao{Stringnome,cor,passnome;doublepeso;Cao(Stringpassnome){this.passnome=("Aqui sem nome ainda");//na verdade esse this define o q?}Cao(){this("Aqui nao imprime pq?");// qual oreal significado do this e this.?nome="Erwin";}voidmpeso(doublepasspeso){passpeso=44.2;System.out.println(passpeso);}voidmcor(Stringpasscor){passcor="WHITE";System.out.println(passcor);}publicstaticvoidmain(String[]args){Caoi=newCao();i.mpeso(i.peso);i.mcor(i.cor);System.out.println(i.nome);System.out.println(i.passnome);}}
robsonmrsp
Vou comentar o seu codigo…
publicclassCao{Stringnome,cor,passnome;doublepeso;//Uma dica! procure diferenciar no nome do argumento passado no construtor e o nome do atributo de classe. Isso é importante para que o código fique mais claro. Cao(StringpPassnome){//Note que eu troquei o nome do parametro de passnome para pPassnomethis.passnome=("Aqui sem nome ainda");//na verdade esse this define o q? Esse this é a referencia ao objeto corrente. o que voce está fazendo é atribuindo o valor "Aqui sem nome ainda" ao atributo de classe passnome}Cao(){this("Aqui nao imprime pq?");// qual oreal significado do this e this.? nessa linha voce está chamando o construtor da classe Cao que recebe como parametro uma String. A frasse "Aqui nao imprime pq?" não é utilizada porque no Construtor ( O que recebe uma String) voce não faz nada com ela(o parametro pPassnome não é usado no construtor) nome="Erwin";}voidmpeso(doublepasspeso){passpeso=44.2;System.out.println(passpeso);}voidmcor(Stringpasscor){passcor="WHITE";System.out.println(passcor);}publicstaticvoidmain(String[]args){Caoi=newCao();i.mpeso(i.peso);i.mcor(i.cor);System.out.println(i.nome);System.out.println(i.passnome);}}
LPJava
o valor que vc quer imprimir está em uma variavel local vc poderia colocar um System.out.println() e quando ele executar seria impresso ou fazer o que a galera falou, agora siga os padroes recomendados pela Sun, como vc está começando começe a si educar desde ja, pq depois que se acostuma com as gambiarras eh dificil sair delas, gambiarras é um droga na vida de um programador…