:?: Estou estudando java pelo livro Use a Cabeça Java…Com base nos primeiros capítulos elaborei esses códigos (anexados)
Mas estou com um problema com as variáveis de referencia, variaveis de métodos e com herança.
Após ler os anexos: O que posso fazer para resolver esse problema?
Ps: Não consegui adicionar uma imagem em tamanho adequado portanto decidi anexar um documento formato .rtf com o código das classes :oops:
nome de Classe começando sempre em maiúsculo (Animal, Dog) e, de preferência, no singular.
nome de variável: primeira palavra minúsculo e as demais com a primeira letra maiúscula (nomeAnimal, nomeCriatura, marcaCarro, etc…)
nome do método a mesma coisa da variável.
qualquer coisa estamos ai
abraços
isaiaspf
Na verdade acontece o erro porque você está tentando mudar o valor de um atributo de escopo privado (private).
Abraço.
J
JCNSilva
:idea: Obrigado pelas dicas e respostas, deu tudo certo agora.
Realmente, estava me esquecendo dos set’s…
E sobre estar usando uma IDE: Sim, eu estou usando o NetBeans
Fexx
Em classe você deveria seguir a convenção de nomes de classes(iniciando com maiúscula), mas isso não vem ao caso.
Você está tentando atribuir um valor a um atributo com o modificador private, para que isso seja possivel vc teria que usa o encaplamento, metodos get e set.
publicclassAnimais{//declarandoprivateStringnome;privatedoublepeso;publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicdoublegetPeso(){returnpeso;}publicvoidsetPeso(doublepeso){this.peso=peso;}//encapsulei...deveria ter feito isso? }
Classe Dog
publicclassDogextendsAnimais{//metodo lata()publicvoidlata(doublepesoAnimal){if(super.getPeso()<3.000){System.out.println("In, In, In");}else{if(pesoAnimal>=3.000&&pesoAnimal<7.000){System.out.println("Au, Au, Au");}else{System.out.println("Ralf, Ralf, Ralf");}}}}
Classe Teste
publicclassTeste{publicstaticvoidmain(String[]args){Dogone=newDog();one.setNome("Brad");System.out.println("Nome do animal : "+one.getNome());}}
J
JCNSilva
Obrigado por todas as respostas. Elas foram bem úteis para a resolução do problema.
//O problema foi que vc botou o peso animal por parametro do metodo lata como se algum dado fosse colocado dentro// do parametro dai eu tirei declarei detro do metodo e getei da animais e deu certo chapa agora é so me da 20 conto kkkkkkkkkkkkkpublicvoidlata(){doublepesoAnimal=getPeso();if(pesoAnimal<3.000){System.out.println(“in,in,in”);}else{if(pesoAnimal>=3.000&&pesoAnimal<7.000){System.out.println(“Au,Au,Au”);}else{System.out.println(“Ralf,Ralf,Ralf”);}}}