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.

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