Source: https://www.bluej.org/objects-first/chapters/Barnes-Kolling-6e-ch1.pdf