All the programming concepts explained so far in the book involved data that needed to be processed. Regardless of the form in which data is provided, the Java programs we’ve written so far took that data, modified it, and printed out the results, whether to console, files, or another software component. You could say that all these components were communicating with each other, and passing processed data from one to another. For example, take Figure
12-1, which abstractly describes the interaction between ...