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

I need some help doing this.. Create an array of printers and initialize it with

ID: 643698 • Letter: I

Question

I need some help doing this..

Create an array of printers and initialize it with the two printer instances you just created User a foreach loop to loop through all the printers Print the instance, make the printer print twice, print an empty line .

Here is my code

public class PrinterApp {
   public static void main(String[] args) {
       InkjetPrinter inkjetPrinter = new InkjetPrinter();
       System.out.println(inkjetPrinter.toString());
       inkjetPrinter.showRemainingCartridge();
       System.out.println();
       LaserPrinter laserPrinter = new LaserPrinter();
       System.out.println(laserPrinter.toString());
       laserPrinter.showRemainingToner();
       System.out.println();
       Printer obj[] = new Printer[2];
       obj[0] = inkjetPrinter;
       obj[1] = laserPrinter;

       for (Printer printer : obj) {
           printer.toString();
           printer.print();
           printer.print();
           System.out.println();
       }
   }
}

___________________________________

public abstract class Printer {
   protected int serialNumber;

   abstract public void print();

   public String toString() {
       String className = this.getClass().getSimpleName();
       if (className.equals("InkjetPrinter")) {
           className += "#123456";
       } else {
           className += "#234567";
       }
       return className;
   }
}

__________________________________________

class LaserPrinter extends Printer {
   private int remainingToner;

   public LaserPrinter() {
       remainingToner = 100;
   }

   @Override
   public void print() {
       if (remainingToner > 0) {
           remainingToner -= 10;
           System.out.println("LaserPrinter is printing, Remaining toner:"
                   + remainingToner + "%");
       } else {
           System.out
                   .println("Toner is empty, Do not subtract any thing from Toner");
       }
   }

   public void showRemainingToner() {
       System.out.println("Remaining toner:" + remainingToner + "%");
   }

}

___________________________________

class InkjetPrinter extends Printer {
   private int remainingCartridge;

   public InkjetPrinter() {
       remainingCartridge = 100;
   }

   @Override
   public void print() {
       if (remainingCartridge > 0) {
           remainingCartridge -= 10;
           System.out.println("LaserPrinter is printing, Remaining Cartridge:"
                   + remainingCartridge + "%");
       } else {
           System.out
                   .println("InkjetPrinter is empty, Do not subtract any thing from Cartridge");
       }
   }

   public void showRemainingCartridge() {
       System.out.println("Remaining Cartridge:" + remainingCartridge + "%");
   }

}

Explanation / Answer

Program code:

import java.util.Random;

public class PrinterApp

{

     public static void main(String[] args)

     {

          //Create an object of Inkjet Printer

          InkjetPrinter inkjetPrinter = new InkjetPrinter();

          System.out.println(inkjetPrinter.toString());

          inkjetPrinter.showRemainingCartridge();

          System.out.println();

          //Create an object of the Laser Printer

          LaserPrinter laserPrinter = new LaserPrinter();

          System.out.println(laserPrinter.toString());

          laserPrinter.showRemainingToner();

          System.out.println();

          //Create an array of objects which holds the two printer objects

          Printer obj[] = {inkjetPrinter, laserPrinter};

          //Create an object of the Random class

          Random rnd = new Random();

          //create a counter variable

          int count=0;

          //Create the array of objects of size 8

          Printer objects[]=new Printer[8];

          //user for each loop and initialize the objects array

          for(Printer o: objects)

          {

              //randomly generating the array of objects

              objects[count]=obj[rnd.nextInt(obj.length)];        

              count++;

          }        

          //Use the for each loop to print the printers and an empty line

          for (Printer printer : objects)

          {

              printer.toString();

              printer.print();

              printer.print();

              System.out.println();

          }

     }

}

public abstract class Printer

{

     protected int serialNumber;

     abstract public void print();

     public String toString()

     {

          String className = this.getClass().getSimpleName();

          if (className.equals("InkjetPrinter"))

          {

              className += "#123456";

          }

          else

          {

              className += "#234567";

          }

          return className;

     }

}

class LaserPrinter extends Printer

{

     private int remainingToner;

     public LaserPrinter()

     {

          remainingToner = 100;

     }

     @Override

     public void print()

     {

          if (remainingToner > 0)

         {

              remainingToner -= 10;

              System.out.println("LaserPrinter is printing, Remaining toner:" + remainingToner + "%");

          }

          else

          {

              System.out.println("Toner is empty, Do not subtract anything from Toner");

          }

     }

     public void showRemainingToner()

     {

          System.out.println("Remaining toner:" + remainingToner + "%");

     }

}

class InkjetPrinter extends Printer

{

     private int remainingCartridge;

     public InkjetPrinter()

     {

          remainingCartridge = 100;

     }

     @Override

     public void print()

     {

          if (remainingCartridge > 0)

          {

              remainingCartridge -= 10;

              System.out.println("InkjetPrinter is printing, Remaining Cartridge:" + remainingCartridge + "%");

          }

          else

          {

              System.out.println("InkjetPrinter is empty, Do not subtract anything from Cartridge");

          }

     }

     public void showRemainingCartridge()

     {

          System.out.println("Remaining Cartridge:" + remainingCartridge + "%");

     }

}

Sample Output:

InkjetPrinter#123456

Remaining Cartridge:100%

LaserPrinter#234567

Remaining toner:100%

LaserPrinter is printing, Remaining toner:90%

LaserPrinter is printing, Remaining toner:80%

InkjetPrinter is printing, Remaining Cartridge:90%

InkjetPrinter is printing, Remaining Cartridge:80%

InkjetPrinter is printing, Remaining Cartridge:70%

InkjetPrinter is printing, Remaining Cartridge:60%

InkjetPrinter is printing, Remaining Cartridge:50%

InkjetPrinter is printing, Remaining Cartridge:40%

InkjetPrinter is printing, Remaining Cartridge:30%

InkjetPrinter is printing, Remaining Cartridge:20%

InkjetPrinter is printing, Remaining Cartridge:10%

InkjetPrinter is printing, Remaining Cartridge:0%

InkjetPrinter is empty, Do not subtract anything from Cartridge

InkjetPrinter is empty, Do not subtract anything from Cartridge

LaserPrinter is printing, Remaining toner:70%

LaserPrinter is printing, Remaining toner:60%

Note:

The required code is highlighted in the bold letters. Here in this program Random class is used to generate the array of printers.