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