in lowarray javawe essentially wrap the class lowarray around an ordinary java array the array is hidden from the outside world inside the classit' privateso only lowarray class methods can access it there are three lowarray methodssetelem(and getelem()which insert and retrieve an elementrespectivelyand constructorwhich creates an empty array of specified size another classlowarrayappcreates an object of the lowarray class and uses it to store and manipulate data think of lowarray as tooland lowarrayapp as user of the tool we've divided the program into two classes with clearly defined roles this is valuable first step in making program object-oriented class used to store data objectsas is lowarray in the lowarray java programis sometimes called container class typicallya container class not only stores the data but provides methods for accessing the dataand perhaps also sorting it and performing other complex actions on it class interfaces we've seen how program can be divided into separate classes how do these classes interact with each othercommunication between classesand the division of responsibility between themare important aspects of object-oriented programming this is especially true when class may have many different users typically class can be used over and over by different users (or the same userfor different purposes for exampleit' possible that someone might use the lowarray class in some other program to store the serial numbers of their traveler' checks the class can handle this just as well as it can store the numbers of baseball players if class is used by many different programmersthe class should be designed so that it' easy to use the way that class user relates to the class is called the class interface because class fields are typically privatewhen we talk about the interface we usually mean the class methodswhat they do and what their arguments are it' by calling these methods that class user interacts with an object of the class one of the important advantages conferred by object-oriented programming is that class interface can be designed to be as convenient and efficient as possible figure is fanciful interpretation of the lowarray interface not so convenient the interface to the lowarray class in lowarray java is not particularly convenient the methods setelem(and getelem(operate on low conceptual levelperforming exactly the same tasks as the [operator in an ordinary java array the class userrepresented by the main(method in the lowarrayapp classends up having to carry out the same low-level operations it did in the non-class version of an array in the array java program the only difference was that it related to setelem(and getelem(instead of the [operator it' not clear that this is an improvement