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.
- 1301 reads