CombinedTable
is #2 from the from the 2021 AP Computer Science A Free Response problems.
https://apcentral.collegeboard.org/pdf/ap21-frq-computer-science-a.pdf?course=ap-computer-science-a
CombinedTable
class
public class CombinedTable
{
private SingleTable t1, t2;
public CombinedTable(SingleTable t1, SingleTable t2)
{
this.t1 = t1;
this.t2 = t2;
}
public boolean canSeat(int people)
{
int seats = t1.getNumSeats() + t2.getNumSeats() - 2;
return seats >= people;
}
public double getDesirability()
{
double averageView = (t1.getViewQuality() + t2.getViewQuality()) / 2;
if(t1.getHeight() == t2.getHeight())
return averageView;
else
return averageView - 10;
}
}
See Class writing order for a technique to respond to AP CS FR that request an entire class.
The problem explicitly states, “… when the characteristics of a SingleTable
change, so do those of the CombinedTable
that contains it.”
CombinedTable
must store a reference to each SingleTable
object. Storing the number of seats and/or the desirability of the CombinedTable
as instance variables is a mistake.
It is possible to store the number of seats and/or the desirability as instance variables in CombinedTable
without incurring a penalty (if the variables are updated immediately prior to use in canSeat
and/or getDesirability
); however, it is still a mistake. See Duplicate data as instance variables for additional discussion.
2021 AP CS Exam Free Response Solutions
- WordMatch Free Response Solution
- ClubMembers Free Response Solution
- ArrayResizer Free Response Solution
Additional classes & objects resources
- Primitive types vs references exercises
- Primitive types vs references exercises with calls
- ZombiePlant FR
Help & comments
Get help from AP CS Tutor Brandon Horn