Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Imagine your project team is developing a Java application that will serve as an

ID: 3862864 • Letter: I

Question

Imagine your project team is developing a Java application that will serve as an educational tool to help children learn about various concepts such as vehicles, animals, sounds, etc. The application will have a need to draw various objects (e.g., animals, vehicles) on the video display as well as to rotate objects, resize objects, and play sounds that are associated with the objects. Your project manager has specified that all objects in the application should use a common interface for drawing, rotating, resizing, and playing sounds, and that these interfaces should be reusable for other application projects as well. Some future applications will need to make sounds, some will need drawing capability, some will need rotating capability, some will need resizing capability, and some will need all capabilities. A method called drawObject() will be used for drawing objects, a method called rotateObject() will be used for rotating objects, a method called resizeObject() will be used for resizing objects, and a playSound() method will be used for playing sounds. 1. Design the interface classes Drawable, Rotatable, Resizable and Sounds. 2. Develop a program called ManipulateAnimals that does the following: An Animal class will be used to model some basic characteristics of animals for the application. An animal will have a name attribute and methods to set the name and get the name. Animals can make sounds and are drawable, rotatable, and resizable. A Vehicle class will be used to model some basic characteristics of vehicles. A vehicle will have a name and an age, and methods to get/set these attributes. Vehicles can also make sounds and are drawable, rotatable, and resizable. Create a collection of 2 vehicles and 2 animals stored in the same array. Loop through the array and execute the drawObject(), rotateObject(), resizeObject(), and playSound() methods polymorphically for each element in the array. The drawObject() method should simply display the message "Drawing a Vehicle" or "Drawing an Animal"; the rotateObject() method should display the message "Rotating a Vehicle" or "Rotating an Animal"; and the playSound() method should display the message "Animal sound" or "Vehicle sound", depending upon the type of element that is in the array. The resizeObject() method should display "Resizing a Vehicle" or "Resizing an Animal".

Explanation / Answer

package programs;

public interface Drawable {
void drawObject();
}

package programs;

public interface Resizable {
   void resizeObject();

}

package programs;

public interface Rotatable {
   void rotateObject();

}

package programs;

public interface Sounds {
void playSound();
}

------------------------------------------------------------------------------------------------------------------------------------------

package programs;

public class ParentClass implements Drawable,Rotatable,Resizable,Sounds {
   public ParentClass()
   {
      
   }

   @Override
   public void playSound() {  
      
   }

   @Override
   public void resizeObject() {  
      
   }

   @Override
   public void rotateObject() {
          
   }

   @Override
   public void drawObject() {  
      
   }

}

---------------------------------------------------------------------------------------------------------------------------------------------

package programs;

public class Animal extends ParentClass {
   private String name;
   public Animal(String name)
   {
       this.name = name;
   }
   public String getName()
   {
       return name;
   }
   public void setName(String name)
   {
       this.name=name;
   }
   @Override
   public void playSound() {
       System.out.println(name +": Animal Sound ");
      
   }
   @Override
   public void resizeObject() {
       System.out.println(name +": Resizing an animal ");
      
   }
   @Override
   public void rotateObject() {
       System.out.println(name +": Rotating an animal ");
      
   }
   @Override
   public void drawObject() {
       System.out.println(name+": Drawing an animal ");
   }

}

------------------------------------------------------------------------------------------------------------------------------------------

package programs;

public class Vehicle extends ParentClass {
private String name;
private int age;
public Vehicle(String name,int age)
{
   this.name=name;
   this.age=age;
     
}
public String getName() {
   return name;
}
public void setName(String name) {
   this.name = name;
}
public int getAge() {
   return age;
}
public void setAge(int age) {
   this.age = age;
}
@Override
public void playSound() {
   System.out.println(name +": Vehicle Sound ");
  
}
@Override
public void resizeObject() {
   System.out.println(name+": Resizing a vehicle ");
  
}
@Override
public void rotateObject() {
   System.out.println(name+": Rotating a vehicle ");
  
}
@Override
public void drawObject() {
   System.out.println(name+": Drawing a vehicle ");
}

}

----------------------------------------------------------------------------------------------------------------------------------------

package programs;

public class ManiPulateAnimal {

  
   public static void main(String[] args) {
      
       ParentClass arr[] = new ParentClass[4];
   arr[0]=new Animal("dog");
      
       arr[1]=new Animal("cat");
      
       arr[2] = new Vehicle("bike",3);
      
       arr[3] = new Vehicle("car",5);
       for(int i=0;i<arr.length;i++)
       {
       arr[i].drawObject();
       arr[i].rotateObject();
       arr[i].resizeObject();
       arr[i].playSound();
       }
  
      
   }

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote