Programming abstractions in Java™ - Roberts, Eric S. (Pearson, 2017)