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:

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();
    
    }
}

Espero ajuda,
Obrigado desde já.

11 Respostas

diego.sas
//   
    //   
    //   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 

    }

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)     
  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"?

  }
Maicon_Henrrique

Tentei do seguinte modo, ta correto o pensamento?

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

A

Diego,

Você deverá criar um Construtor com somente a propriedade nome para dar nome ao seu cachorro. Abaixo segue exemplo:

Class Dog {

private String nome;

private Integer idade;

private Double peso;

//Não Instancia nenhuma propriedade
public Dog(){}

//Instancia todas as propriedades

public Dog(String nome, Integer idade, Double peso){

this.nome = nome;

this.idade = idade;

this.peso = peso;

}
//Instancia somente a propriedade nome

public Dog(String nome){

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)

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);
 }

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

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

Algo desse tipo, certo?

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);
}
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:
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);  
    }
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
d.nome
Criado 2 de março de 2012
Ultima resposta 2 de mar. de 2012
Respostas 11
Participantes 6