Imagine an automobile. An automobile is made up of hundreds if not thousands of parts. The parts are, in general, organized into
systems -- the drive train, the ignition system, the fuel system, the electrical system. Within each system, there are a few parts that bridge between systems: for example, the spark plugs serve as a sort of connection between the electrical system and the drive train. The tires serve as a sort of connection between the drive train and the road. The steering wheel is the interface between the steering system and the driver. But there are hundreds of parts (Cotter pins, axles,
struts, piston rings, bolts) which are internal to a system and are normally never exposed.
In the analogous
Java program, a system becomes a package; the few special parts are the public classes; and the vast majority of behind-the-scenes parts are the non-public classes.