Now that we have defined what a list is, we ask ourselves how we can process it? What can we do with a list? The above code makes it clear that there is not a whole lot we can do with a list besides instantiating a bunch of MTList objects via the call new MTList() (why?). Now that we are using the full Java language, we need to write a constructor for NEList in order to instantiate non-empty list objects with appropriate first and rest. The Java code for NEList now looks as follows (note how the comments are written).
/**
* Represents non-empty lists.
*/
public class NEList implements IList {
private Object _first;
private IList _rest;
/**
* Initializes this NEList to a given first and a given rest.
* @param f the first element of this NEList.
* @param r the rest of this NEList.
*/
public NEList(Object f, IList r) {
_first = f;
_rest = r;
}
}
The list structure as coded in the above is completely encapsulated, that is, all internal components (if any) of a list are private and cannot be accessed by any external code. Using the appropriate constructors, we can make a bunch of lists to store data but we cannot retrieve data nor do anything with these lists. In Object-Oriented Programming (OOP) parlance, the list is said to have no behavior at all. As such they are of no use to us.
- 瀏覽次數:1882




