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:
[code]package doglife;
class Dog {
int peso;
String nome;
int idade;
//
//
// Dá um erro , tal, (nome is alrealdy defined in newDog(java.lang.String)
void newDog (String nome) {
Dog nome = new Dog();
}
//
void late() {
System.out.println ("Ruff!");
}
}
class Cat {
int peso;
String nome;
void mia() {
System.out.println ("Miau!");
}
}
public class DogLife {
public static void main(String[] args) {
Dog cachorro = new Dog();
Cat gato = new Cat();
}
[code] //
//
// Dá um erro , tal, (nome is alrealdy defined in newDog(java.lang.String)
void newDog (String nome) {
// Dog nome = new Dog();
Dog cahorro= new Dog(); //correto
} [/code]
nome voce esta recebendo por parametrô e é uma String, não pode utilizar nome para criar um Dog
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)
void newDog (String nome) {
// Dog nome = new Dog();
Dog cahorro= new Dog(); //correto
//Como fazer com que o usuario escolha o nome do objeto no caso "cachorro"?
}
package doglife;
class Dog {
int peso;
String nome;
int idade;
void newDog (String nome) {
nome = "Cachorro"; // Seria estipulado pelo usuario...
Dog cachorro = new Dog();
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
[quote=Maicon Henrrique]Mais como eu faço pro usuario poder definir o nome do cachorro (objeto)
class Dog {
int peso;
String nome;
int idade;
// Construtor de Dog
public void Dog(int peso, String nome, int idade){
this.peso = peso;
this.nome = nome;
this.idade = idade;
}
}
class UsaDog{
// De alguma forma vc captura o nome....
String nomeDog = "kjasfhaksjfh";
Dog dog = new Dog(0, nomeDog, 0);
}
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
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.
public Dog(String nome){
this.nome = nome;
}
public metodoCriaDog(){
Scanner input = new Scanner(System.in)
System.out.println(“Digite o nome do dog”);
String nome = input .nextLine();
Dog d = new Dog(nome);
}[/code]
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.
[quote=vitor2908] [code]
private String nome;
public Dog(String nome){
this.nome = nome;
}
public metodoCriaDog(){
Scanner input = new Scanner(System.in)
System.out.println("Digite o nome do dog");
String nome = input .nextLine();
Dog d = new Dog(nome);
} [/code] [/quote]
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