Abstractions in computer science hide details to manage complexity.

Commonly used abstractions include:

Many methods can be written more generally by using one or more parameters.

The example below assumes an understanding of:

Example: Searching for a value in a list

With a key parameter

public static boolean search(int[] arr, int key)
{
    for (int i = 0; i < arr.length; i++)
        if (arr[i] == key)
            return true;
    
    return false;
}

The search method returns true if its parameter key is in its parameter arr, false otherwise.

Without a key parameter

public static boolean searchForFive(int[] arr)
{
    for (int i = 0; i < arr.length; i++)
        if (arr[i] == 5)
            return true;
    
    return false;
}

public static boolean searchForTen(int[] arr)
{
    for (int i = 0; i < arr.length; i++)
        if (arr[i] == 10)
            return true;
    
    return false;
}

The searchForFive and searchForTen methods implement the same algorithm as the search method, but without the parameter key.

Without the parameter key, searchForFive must compare each value in arr to 5 and searchForTen must compare each value to 10. Searching for a different value, such as 15, would require writing another version.

The parameter manages complexity

Parameters are abstractions because they allow the code inside a method to be written more generally.

Help & comments

Get help from AP CS Tutor Brandon Horn

Comment on Parameters as abstractions