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.