Question
Given a base Plant class and a derived Flower class, complete main() to create an ArrayList of Plant objects. Call your arrayList myGarden . Because
Given a base Plant class and a derived Flower class, complete main() to create an ArrayList of Plant objects. Call your arrayList myGarden. Because your ArrayList is of type Plant you will also be able to put Flower objects in the ArrayList because Flowers are plants too. Create a method called printArrayList(), that uses the printInfo() methods defined in the respective classes and prints each element in myGarden. The program should read plants or flowers from input (ending with -1), add each Plant or Flower to the myGarden ArrayList, and output each element in myGarden using the printInfo() method.
Ex. If the input is:
plant Spirea 10
flower Hydrangea 30 false lilac
flower Rose 6 false white
plant Mint 4
-1
the output is:
Plant Information:
Plant name: Spirea
Cost: 10
Plant Information:
Plant name: Hydrangea
Cost: 30
Annual: false
Color of flowers: lilac
Plant Information:
Plant name: Rose
Cost: 6
Annual: false
Color of flowers: white
Plant Information:
Plant name: Mint
Cost: 4
PlantArrayListExample.java
import java.util.Scanner; import java.util.ArrayList; import java.util.StringTokenizer;
public class PlantArrayListExample {
// TODO: Define a printArrayList method that prints an ArrayList of plant (or flower) objects public static void main(String[] args) { Scanner scnr = new Scanner(System.in); String input; // TODO: Declare an ArrayList called myGarden that can hold object of type plant
// TODO: Declare variables - plantName, plantCost, colorOfFlowers, isAnnual input = scnr.next(); while(!input.equals("-1")){ // TODO: Check if input is a plant or flower // Store as a plant object or flower object // Add to the ArrayList myGarden input = scnr.next(); } // TODO: Call the method printArrayList to print myGarden } }
Plant.java
public class Plant { protected String plantName; protected String plantCost; public Plant() { plantName=""; plantCost=""; }
public void setPlantName(String userPlantName) { plantName = userPlantName; }
public String getPlantName() { return plantName; }
public void setPlantCost(String userPlantCost) { plantCost = userPlantCost; }
public String getPlantCost() { return plantCost; }
public void printInfo() { System.out.println("Plant Information: "); System.out.println(" Plant name: " + plantName); System.out.println(" Cost: " + plantCost); } }
Flower.java
public class Flower extends Plant {
private boolean isAnnual; private String colorOfFlowers; public Flower () { super(); isAnnual = true; colorOfFlowers = ""; }
public void setPlantType(boolean userIsAnnual) { isAnnual = userIsAnnual; }
public boolean getPlantType(){ return isAnnual; }
public void setColorOfFlowers(String userColorOfFlowers) { colorOfFlowers = userColorOfFlowers; }
public String getColorOfFlowers(){ return colorOfFlowers; } @Override public void printInfo(){ System.out.println("Plant Information: "); System.out.println(" Plant name: " + plantName); System.out.println(" Cost: " + plantCost); System.out.println(" Annual: " + isAnnual); System.out.println(" Color of flowers: " + colorOfFlowers); } }
Rubric:
Correct printArraylist method
In loop, get input
In loop correctly make an object (flower or plant)
In loop correctly add object to ArrayList
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started