Logo

Collegeboard 2015 FRQ 4

Type: Classes

Question 4

Part A

public interface NumberGroup 
{
     public boolean contains(int num);
}

Part B

public class Range implements NumberGroup{
    private int min;
    private int max;

    public Range(int min, int max){
        this.min = min;
        this.max = max;
    }
 
    public boolean contains(int num){
        return num >= min && num <= max;
    }

    public static void main(String[] args) {
        NumberGroup range = new Range(-3, 2);

        System.out.println(range.contains(-10));
        System.out.println(range.contains(-3));
        System.out.println(range.contains(0));
        System.out.println(range.contains(1)); 
        System.out.println(range.contains(5));
    }
} 

Range.main(null);
false
true
true
true
false

Part C

public class MultipleGroups implements NumberGroup {
    private List<NumberGroup> groupList;

    public MultipleGroups() {
        groupList = new ArrayList<>();
        groupList.add(new Range(5, 8));
        groupList.add(new Range(10, 12));
        groupList.add(new Range(1, 6));
    }

    public boolean contains(int num) {
        for (NumberGroup group : groupList) {
            if (group.contains(num)) {
                return true;
            }
        }
        return false;
    }
}

// Test  
class MultipleGroupsTest {
    public static void main(String[] args) {
        MultipleGroups multiple = new MultipleGroups();

        System.out.println(multiple.contains(3)); // should return true
        System.out.println(multiple.contains(9)); // should return false
        System.out.println(multiple.contains(5)); // should return true
    }
}

MultipleGroupsTest.main(null);

true
false
true