Java Programming- DO NOT USE BREAK METHOD Goals The lab this lesson introduces s
ID: 3815804 • Letter: J
Question
Java Programming- DO NOT USE BREAK METHOD
Goals
The lab this lesson introduces students to inheritance. By the end of this lab, students should be able to
To define a subclass from a superclass through inheritance
To invoke the superclass’s constructors and methods using the super keyword
To override instance methods in the subclass
To distinguish differences between overriding and overloading
To discover polymorphism and dynamic binding
To store, retrieve, and manipulate objects in an ArrayList
Write a class Room. A Room class contains
an int instance variable for the area (in square feet) of the room
one constructor that takes the area of the room as a parameter
an accessor, int getSquareFeet() that returns the area of the room
an accessor, int getCapacity() that returns the capacity of the room. The capacity is given by dividing the square feet by 9 (using integer division).
an accessor, String toString() that returns the square feet and capacity of the room.
Write a class Classroom that extends Room. A Classroom class contains
an int instance variable for the number of chairs in the classroom
a constructor that takes the area of the classroom as a parameter
a constructor that takes the area of the classroom and the number of chairs as parameters
getter and setter for chairs
an override for getCapacity. The capacity of a classroom is the number of chairs.
an accessor, String toString() that returns the square feet and capacity of the room as well as the number of chairs.
Write a class Elevator that extends Room. An Elevator class contains
an int instance variable for the current floor of the elevator
a constructor that takes the area of the elevator as a parameter
a mutator void up(int floors) that increases the current floor by the parameter
a mutator void down(int floors) that decreases the current floor by the parameter
an accessor String toString() that returns the square feet and capacity of the elevator, as well as its current floor.
The attached file contains starter code for a class Building that you should use as a driver for the following set of classes.
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class Building {
public static void main(String[] args) {
Scanner kybd = new Scanner(System.in);
// declare an ArrayList containing Room elements
Random rand = new Random();
System.out.println("Enter 1: create classroom 2: create create elevator" + " 3: exit");
int inp = kybd.nextInt();
while (inp != 3) {
if (inp == 1) {
System.out.println("How many chairs? ");
int ch = kybd.nextInt();
Room current = new Classroom(rand.nextInt(1000) + 100, ch);
// add current to the ArrayList
} else if (inp == 2) {
Elevator current = new Elevator(rand.nextInt(100) + 10);
if (rand.nextInt(2) == 0) {
current.up(rand.nextInt(10));
} else {
current.down(rand.nextInt(10));
}
// add current to the ArrayList
}
System.out.println("Enter 1: create classroom 2: create create elevator" + " 3: exit");
inp = kybd.nextInt();
}
kybd.close();
// create a for loop to walk through the ArrayList its elements, one per line
}
}
Explanation / Answer
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
import java.util.List;
class Room
{
private int area;
public Room(int area)
{
this.area = area;
}
int getSquareFeet()
{
return area;
}
int getCapacity()
{
return area/9;
}
public String toString()
{
return "The area of room is "+ area +" square feet and capacity of the room is "+ getCapacity();
}
}
class Classroom extends Room
{
private int chairs;
public Classroom(int area)
{
super(area);
}
public Classroom(int area,int chairs)
{
super(area);
this.chairs = chairs;
}
public int getChairs()
{
return chairs;
}
public void setChairs(int chairs)
{
this.chairs = chairs;
}
public int getCapacity()
{
return chairs;
}
public String toString()
{
return "The area of Classroom is "+ getSquareFeet() +" square feet and capacity of the room is "+ getCapacity()+" and the number of chairs is "+chairs;
}
}
class Elevator extends Room
{
private int currentFloor;
public Elevator(int area)
{
super(area);
}
public void up(int floors)
{
currentFloor = currentFloor + floors;
}
public void down(int floors)
{
currentFloor = currentFloor - floors;
}
public String toString()
{
return "The area of Elevator is "+ getSquareFeet() +" square feet and capacity of the elevator is "+ getCapacity()+" and the current floor is "+ currentFloor;
}
}
class Building {
public static void main(String[] args) {
Scanner kybd = new Scanner(System.in);
// declare an ArrayList containing Room elements
List<Room> roomArray = new ArrayList<Room>();
Random rand = new Random();
System.out.println("Enter 1: create classroom 2: create create elevator" + " 3: exit");
int inp = kybd.nextInt();
while (inp != 3) {
if (inp == 1) {
System.out.println("How many chairs? ");
int ch = kybd.nextInt();
Room current = new Classroom(rand.nextInt(1000) + 100, ch);
// add current to the ArrayList
roomArray.add(current);
} else if (inp == 2) {
Elevator current = new Elevator(rand.nextInt(100) + 10);
if (rand.nextInt(2) == 0) {
current.up(rand.nextInt(10));
} else {
current.down(rand.nextInt(10));
}
// add current to the ArrayList
roomArray.add(current);
}
System.out.println("Enter 1: create classroom 2: create create elevator" + " 3: exit");
inp = kybd.nextInt();
}
kybd.close();
// create a for loop to walk through the ArrayList its elements, one per line
for(int i = 0; i < roomArray.size(); i++)
{
System.out.println(roomArray.get(i).toString());
}
}
}
Output:
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.