Método que cria um objeto , no caso, um cachorro. (Simples)
11 respostas
Maicon_Henrrique
To aprendendo as bases da orientação á objetos e queria criar um método que criasse um cachorro com um nome definido pelo usuario
Código:
packagedoglife;classDog{intpeso;Stringnome;intidade;// //// Dá um erro , tal, (nome is alrealdy defined in newDog(java.lang.String)voidnewDog(Stringnome){Dognome=newDog();}//voidlate(){System.out.println("Ruff!");}}classCat{intpeso;Stringnome;voidmia(){System.out.println("Miau!");}}publicclassDogLife{publicstaticvoidmain(String[]args){Dogcachorro=newDog();Catgato=newCat();}}
// // // Dá um erro , tal, (nome is alrealdy defined in newDog(java.lang.String) voidnewDog(Stringnome){// Dog nome = new Dog(); Dogcahorro=newDog();//correto }
nome voce esta recebendo por parametrô e é uma String, não pode utilizar nome para criar um Dog
Maicon_Henrrique
Mais como eu faço pro usuario poder definir o nome do cachorro (objeto)
// Dá um erro , tal, (nome is alrealdy defined in newDog(java.lang.String) voidnewDog(Stringnome){// Dog nome = new Dog(); Dogcahorro=newDog();//correto //Como fazer com que o usuario escolha o nome do objeto no caso "cachorro"?}
Maicon_Henrrique
Tentei do seguinte modo, ta correto o pensamento?
packagedoglife;classDog{intpeso;Stringnome;intidade;voidnewDog(Stringnome){nome="Cachorro";// Seria estipulado pelo usuario...Dogcachorro=newDog();cachorro.nome=nome;}
Porém toda vez que eu chamar o método ele vai criar um objeto chamado cachorro,
eu queria que o aplicativo criasse por exemplo, cachorro1, da proxima vez que fosse chamado, criasse o objeto Dog, chamado cachorro2 e assim por diante
A
agostinhooliv
Diego,
Você deverá criar um Construtor com somente a propriedade nome para dar nome ao seu cachorro. Abaixo segue exemplo:
//Não Instancia nenhuma propriedade
public Dog(){}
//Instancia todas as propriedadespublicDog(Stringnome,Integeridade,Doublepeso){this.nome=nome;this.idade=idade;this.peso=peso;}
//Instancia somente a propriedade nomepublicDog(Stringnome){this.nome=nome;}
//Getters and Setters
}
E assim você poderá fazer para qualquer outra propriedade individualmente.
Espero ter ajudado.
Att. Agostinho Neto
diego.sas
Maicon Henrrique:
Mais como eu faço pro usuario poder definir o nome do cachorro (objeto)
classDog{intpeso;Stringnome;intidade;// Construtor de DogpublicvoidDog(intpeso,Stringnome,intidade){this.peso=peso;this.nome=nome;this.idade=idade;}}classUsaDog{// De alguma forma vc captura o nome....StringnomeDog="kjasfhaksjfh";Dogdog=newDog(0,nomeDog,0);}
nel
Qual seria o seu real objetivo ?
Creio que esteja bem confuso em relação a orientação a objetos.
Dá uma lida sobre encapsulamento e construtor, vai lhe ajudar.
Abraços.
V
vitor2908
Para entrada via console vc pode usar a classe Scanner.
Scanner var = new Scanner(System.in);
System.out.println("Digite o nome do dog");
String nome = var.nextLine();
cria um objeto Scanner na primeira linha que aceita entrada via console.
mostra uma mensagem na segunda linha pedindo que digite um nome
Na terceira linha uma string recebe o valor que foi digitado pelo teclado
Aconselho que estude a apostila da caelum FJ11 para fixar bem os conceitos de orientação a objeto, entrada e saida são tratados bem mais adiante quando já se tem alguns aspectos dominados
Maicon_Henrrique
A minha duvida simplesmente é essa
Eu quero que um método crie um objeto DOG, com o nome do Objeto ( Dog (nomeaqui) = new Dog(); ) estipulado pelo usuario
Simples assim
Vou estudar a apostila como o amigo encima citou, obrigado a todos que ajudaram, vou pesquisar sobre construtores e tudo mais.
Valeu!
V
vitor2908
Algo desse tipo, certo?
privateStringnome;publicDog(Stringnome){this.nome=nome;}publicmetodoCriaDog(){Scannerinput=newScanner(System.in)System.out.println("Digite o nome do dog");Stringnome=input.nextLine();Dogd=newDog(nome);}
Maicon_Henrrique
Issssssso!
Thanks!
CharlesAlves
Só para acrescentar, não é possivel o usuário determinar o nome da variavel, o que pode ser mudado de acordo com o que o ele informar são os atributos do objeto.
como no exemplo de vitor2908.
vitor2908:
privateStringnome;publicDog(Stringnome){this.nome=nome;}publicmetodoCriaDog(){Scannerinput=newScanner(System.in)System.out.println("Digite o nome do dog");Stringnome=input.nextLine();Dogd=newDog(nome);}
O atributo nome do objeto Dog é alterado porém o nome da variável que é d contibuará sendo d, caso você queira saber qual o nome do chachorro que o usuário informou terá que fazer da seguinte forma