lundi 2 décembre 2019

Making objects easier and cleaner

As you can see this code sucks and really hard to read. Everytime i want to make a new dog I'll have to add more if statements which will make the code more unreadable. How would i make this code cleaner and in the future how would i make more dogs easier without adding more if? As if I'm not asking enough can you also explain it to me as a beginner? You'll just have to bare with me.

  String userName;
  Scanner scanner = new Scanner(System.in);
  Dog oscar = new Dog("Oscar", "German Shepherd", "No one", 2);
  Dog sheeba = new Dog("Sheeba", "BullDog", "No one", 4);

 public void Username() {
   System.out.println("Your Name?");
   userName = scanner.nextLine(); 
   System.out.println("Hello " + userName);
  } 
  public void myAnimal () {
System.out.println("Please Choose a Dog | Oscar | Sheeba "); 
 String chooseDog = scanner.nextLine();
if (chooseDog.equals("Oscar")) { 
 oscar.info();
  System.out.println("Adopt Oscar? | Yes | No"); 

String adoptOscar = scanner.nextLine();
 if (adoptOscar.equals("Yes")) { 
        oscar.owner = userName;

System.out.println("Change Oscar's name? | Yes | No"); 
 String changeOscar = scanner.nextLine();
  if (changeOscar.equals("Yes")) { 
  System.out.println("New Name");
  String newOscar = scanner.nextLine();
  oscar.name = newOscar;
} else if (changeOscar.equals("No")) {
  oscar.info();
} myAnimal();
      } 
      else if (adoptOscar.equals("No")) {
        myAnimal();
      }
    } 
else if(chooseDog.equals("Sheeba")){
 sheeba.info();
 System.out.println("Adopt Sheeba? | Yes | No");

String adoptSheeba = scanner.nextLine();
 if (adoptSheeba.equals("Yes")) {
   sheeba.owner = userName;
   System.out.println("Change Sheeba's name? | Yes | No");
   String changeSheeba = scanner.nextLine();
   if (changeSheeba.equals("Yes")) {
     System.out.println("New Name");
     String newSheeba = scanner.nextLine();
     sheeba.name = newSheeba;
   } else if (changeSheeba.equals("No")) {
     sheeba.info();
   } myAnimal();
 } else if (adoptSheeba.equals("No")) {
   myAnimal();
 }
  } 

 }
}    

Aucun commentaire:

Enregistrer un commentaire